{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "5d037743",
   "metadata": {
    "id": "5d037743"
   },
   "source": [
    "# Pulse Arrival Time\n",
    "In this tutorial we will learn how to estimate pulse arrival time from ECG and PPG signals.\n",
    "\n",
    "Our **objectives** are to:\n",
    "- Be able to identify relevant points on ECG and PPG signals\n",
    "- Extract pulse arrival time from these points\n",
    "- Be aware of the variability inherent in real-world data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "da64c16b",
   "metadata": {
    "id": "da64c16b"
   },
   "source": [
    "<div class=\"alert alert-block alert-warning\"><p><b>Context:</b> A key step in analysing PPG and BP signals is the detection of beats in the signals. This allows individual pulse waves to be analysed, and either: (i) features to be extracted from PPG pulse waves; or (ii) reference BP values to be extracted from BP pulse waves.</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1afcdef9",
   "metadata": {
    "id": "1afcdef9"
   },
   "source": [
    "---\n",
    "## Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "edd8e0c5",
   "metadata": {
    "id": "edd8e0c5"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "ce3cdfde",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "ce3cdfde",
    "outputId": "693c9521-0083-4ff7-edcc-907e37698176"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: wfdb==4.1.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (4.1.0)\n",
      "Requirement already satisfied: numpy<2.0.0,>=1.10.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.1.0) (1.20.1)\n",
      "Requirement already satisfied: requests<3.0.0,>=2.8.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.1.0) (2.25.1)\n",
      "Requirement already satisfied: pandas<2.0.0,>=1.0.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.1.0) (1.2.4)\n",
      "Requirement already satisfied: scipy<2.0.0,>=1.0.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.1.0) (1.6.2)\n",
      "Requirement already satisfied: SoundFile<0.12.0,>=0.10.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.1.0) (0.10.3.post1)\n",
      "Requirement already satisfied: matplotlib<4.0.0,>=3.2.2 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from wfdb==4.1.0) (3.3.4)\n",
      "Requirement already satisfied: pillow>=6.2.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.1.0) (8.2.0)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.1.0) (1.3.1)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.1.0) (2.4.7)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.1.0) (2.8.1)\n",
      "Requirement already satisfied: cycler>=0.10 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from matplotlib<4.0.0,>=3.2.2->wfdb==4.1.0) (0.10.0)\n",
      "Requirement already satisfied: six in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from cycler>=0.10->matplotlib<4.0.0,>=3.2.2->wfdb==4.1.0) (1.15.0)\n",
      "Requirement already satisfied: pytz>=2017.3 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from pandas<2.0.0,>=1.0.0->wfdb==4.1.0) (2021.1)\n",
      "Requirement already satisfied: chardet<5,>=3.0.2 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.1.0) (4.0.0)\n",
      "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.1.0) (1.26.4)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.1.0) (2022.12.7)\n",
      "Requirement already satisfied: idna<3,>=2.5 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from requests<3.0.0,>=2.8.1->wfdb==4.1.0) (2.10)\n",
      "Requirement already satisfied: cffi>=1.0 in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from SoundFile<0.12.0,>=0.10.0->wfdb==4.1.0) (1.14.5)\n",
      "Requirement already satisfied: pycparser in /Users/petercharlton/anaconda3/lib/python3.8/site-packages (from cffi>=1.0->SoundFile<0.12.0,>=0.10.0->wfdb==4.1.0) (2.20)\n"
     ]
    }
   ],
   "source": [
    "# Packages\n",
    "import sys\n",
    "from pathlib import Path\n",
    "!pip install wfdb==4.1.0\n",
    "import wfdb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "ee8532b2",
   "metadata": {
    "id": "ee8532b2"
   },
   "outputs": [],
   "source": [
    "# The name of the MIMIC IV Waveform Database on PhysioNet\n",
    "database_name = 'mimic4wdb/0.1.0' \n",
    "\n",
    "# Segment for analysis\n",
    "segment_names = ['83404654_0005', '82924339_0007', '84248019_0005', '82439920_0004', '82800131_0002', '84304393_0001', '89464742_0001', '88958796_0004', '88995377_0001', '85230771_0004', '86643930_0004', '81250824_0005', '87706224_0003', '83058614_0005', '82803505_0017', '88574629_0001', '87867111_0012', '84560969_0001', '87562386_0001', '88685937_0001', '86120311_0001', '89866183_0014', '89068160_0002', '86380383_0001', '85078610_0008', '87702634_0007', '84686667_0002', '84802706_0002', '81811182_0004', '84421559_0005', '88221516_0007', '80057524_0005', '84209926_0018', '83959636_0010', '89989722_0016', '89225487_0007', '84391267_0001', '80889556_0002', '85250558_0011', '84567505_0005', '85814172_0007', '88884866_0005', '80497954_0012', '80666640_0014', '84939605_0004', '82141753_0018', '86874920_0014', '84505262_0010', '86288257_0001', '89699401_0001', '88537698_0013', '83958172_0001']\n",
    "segment_dirs = ['mimic4wdb/0.1.0/waves/p100/p10020306/83404654', 'mimic4wdb/0.1.0/waves/p101/p10126957/82924339', 'mimic4wdb/0.1.0/waves/p102/p10209410/84248019', 'mimic4wdb/0.1.0/waves/p109/p10952189/82439920', 'mimic4wdb/0.1.0/waves/p111/p11109975/82800131', 'mimic4wdb/0.1.0/waves/p113/p11392990/84304393', 'mimic4wdb/0.1.0/waves/p121/p12168037/89464742', 'mimic4wdb/0.1.0/waves/p121/p12173569/88958796', 'mimic4wdb/0.1.0/waves/p121/p12188288/88995377', 'mimic4wdb/0.1.0/waves/p128/p12872596/85230771', 'mimic4wdb/0.1.0/waves/p129/p12933208/86643930', 'mimic4wdb/0.1.0/waves/p130/p13016481/81250824', 'mimic4wdb/0.1.0/waves/p132/p13240081/87706224', 'mimic4wdb/0.1.0/waves/p136/p13624686/83058614', 'mimic4wdb/0.1.0/waves/p137/p13791821/82803505', 'mimic4wdb/0.1.0/waves/p141/p14191565/88574629', 'mimic4wdb/0.1.0/waves/p142/p14285792/87867111', 'mimic4wdb/0.1.0/waves/p143/p14356077/84560969', 'mimic4wdb/0.1.0/waves/p143/p14363499/87562386', 'mimic4wdb/0.1.0/waves/p146/p14695840/88685937', 'mimic4wdb/0.1.0/waves/p149/p14931547/86120311', 'mimic4wdb/0.1.0/waves/p151/p15174162/89866183', 'mimic4wdb/0.1.0/waves/p153/p15312343/89068160', 'mimic4wdb/0.1.0/waves/p153/p15342703/86380383', 'mimic4wdb/0.1.0/waves/p155/p15552902/85078610', 'mimic4wdb/0.1.0/waves/p156/p15649186/87702634', 'mimic4wdb/0.1.0/waves/p158/p15857793/84686667', 'mimic4wdb/0.1.0/waves/p158/p15865327/84802706', 'mimic4wdb/0.1.0/waves/p158/p15896656/81811182', 'mimic4wdb/0.1.0/waves/p159/p15920699/84421559', 'mimic4wdb/0.1.0/waves/p160/p16034243/88221516', 'mimic4wdb/0.1.0/waves/p165/p16566444/80057524', 'mimic4wdb/0.1.0/waves/p166/p16644640/84209926', 'mimic4wdb/0.1.0/waves/p167/p16709726/83959636', 'mimic4wdb/0.1.0/waves/p167/p16715341/89989722', 'mimic4wdb/0.1.0/waves/p168/p16818396/89225487', 'mimic4wdb/0.1.0/waves/p170/p17032851/84391267', 'mimic4wdb/0.1.0/waves/p172/p17229504/80889556', 'mimic4wdb/0.1.0/waves/p173/p17301721/85250558', 'mimic4wdb/0.1.0/waves/p173/p17325001/84567505', 'mimic4wdb/0.1.0/waves/p174/p17490822/85814172', 'mimic4wdb/0.1.0/waves/p177/p17738824/88884866', 'mimic4wdb/0.1.0/waves/p177/p17744715/80497954', 'mimic4wdb/0.1.0/waves/p179/p17957832/80666640', 'mimic4wdb/0.1.0/waves/p180/p18080257/84939605', 'mimic4wdb/0.1.0/waves/p181/p18109577/82141753', 'mimic4wdb/0.1.0/waves/p183/p18324626/86874920', 'mimic4wdb/0.1.0/waves/p187/p18742074/84505262', 'mimic4wdb/0.1.0/waves/p188/p18824975/86288257', 'mimic4wdb/0.1.0/waves/p191/p19126489/89699401', 'mimic4wdb/0.1.0/waves/p193/p19313794/88537698', 'mimic4wdb/0.1.0/waves/p196/p19619764/83958172']\n",
    "\n",
    "# 3 and 8 are helpful\n",
    "rel_segment_no = 8 \n",
    "rel_segment_name = segment_names[rel_segment_no]\n",
    "rel_segment_dir = segment_dirs[rel_segment_no]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61a9432c",
   "metadata": {
    "id": "61a9432c"
   },
   "source": [
    "---\n",
    "## Extract one minute of signals from this segment"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3d1d426b",
   "metadata": {
    "id": "3d1d426b"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "id": "60464239",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "60464239",
    "outputId": "c03e45df-1855-4eab-e60d-dd3a18d7b76a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Metadata loaded from segment: 88995377_0001\n",
      "60 seconds of data extracted from: 88995377_0001\n",
      "Extracted the ABP signal from column 3 of the matrix of waveform data at 62.5 Hz.\n",
      "Extracted the PPG signal from column 4 of the matrix of waveform data at 62.5 Hz.\n",
      "Extracted the ECG signal from column 2 of the matrix of waveform data at 62.5 Hz.\n"
     ]
    }
   ],
   "source": [
    "# time since the start of the segment at which to begin extracting data\n",
    "start_seconds = 100 \n",
    "no_seconds_to_load = 60\n",
    "\n",
    "segment_metadata = wfdb.rdheader(record_name=rel_segment_name, pn_dir=rel_segment_dir) \n",
    "print(f\"Metadata loaded from segment: {rel_segment_name}\")\n",
    "\n",
    "fs = round(segment_metadata.fs)\n",
    "sampfrom = fs*start_seconds\n",
    "sampto = fs*(start_seconds+no_seconds_to_load)\n",
    "\n",
    "segment_data = wfdb.rdrecord(record_name=rel_segment_name,\n",
    "                             sampfrom=sampfrom,\n",
    "                             sampto=sampto,\n",
    "                             pn_dir=rel_segment_dir)\n",
    "\n",
    "print(f\"{no_seconds_to_load} seconds of data extracted from: {rel_segment_name}\")\n",
    "abp_col = []\n",
    "ppg_col = []\n",
    "\n",
    "abp_col = segment_data.sig_name.index('ABP')\n",
    "ppg_col = segment_data.sig_name.index('Pleth')\n",
    "ecg_col = segment_data.sig_name.index('II')\n",
    "\n",
    "abp = segment_data.p_signal[:,abp_col]\n",
    "ppg = segment_data.p_signal[:,ppg_col]\n",
    "ecg = segment_data.p_signal[:,ecg_col]\n",
    "fs = segment_data.fs\n",
    "\n",
    "print(f\"Extracted the ABP signal from column {abp_col} of the matrix of waveform data at {fs:.1f} Hz.\")\n",
    "print(f\"Extracted the PPG signal from column {ppg_col} of the matrix of waveform data at {fs:.1f} Hz.\")\n",
    "print(f\"Extracted the ECG signal from column {ecg_col} of the matrix of waveform data at {fs:.1f} Hz.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1705ff48",
   "metadata": {
    "id": "1705ff48"
   },
   "source": [
    "---\n",
    "## Filter the signals"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "47a63ea6",
   "metadata": {
    "id": "47a63ea6"
   },
   "source": [
    "_These steps have been covered in previous tutorials, so we'll just re-use the code here._"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b6a38f7",
   "metadata": {},
   "source": [
    "- Import packages"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "id": "5f35624c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import scipy.signal as sp\n",
    "from matplotlib import pyplot as plt\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec9da851",
   "metadata": {},
   "source": [
    "- Create filter for PPG and BP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "75fd6b99",
   "metadata": {
    "id": "75fd6b99"
   },
   "outputs": [],
   "source": [
    "# filter cut-offs for PPG and BP\n",
    "lpf_cutoff = 0.7 # Hz\n",
    "hpf_cutoff = 10 # Hz\n",
    "\n",
    "# create filter\n",
    "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff],\n",
    "                       btype = 'bp',\n",
    "                       analog = False,\n",
    "                       output = 'sos',\n",
    "                       fs = fs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "815d512f",
   "metadata": {},
   "source": [
    "- Filter PPG and BP"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "79320156",
   "metadata": {},
   "outputs": [],
   "source": [
    "# filter PPG\n",
    "ppg_filt = sp.sosfiltfilt(sos_filter, ppg)\n",
    "\n",
    "# Filter ABP\n",
    "abp_filt = sp.sosfiltfilt(sos_filter, abp)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "966174ab",
   "metadata": {},
   "source": [
    "- Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "48c30a70",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'PPG')"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0,len(ppg))/fs\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(t, ppg, color = 'blue')\n",
    "ax.plot(t, ppg_filt, color = 'red')\n",
    "ax.set_xlabel('Time [s]')\n",
    "ax.set_ylabel('PPG')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "603d12db",
   "metadata": {},
   "source": [
    "- Create filter for ECG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "925827c8",
   "metadata": {},
   "outputs": [],
   "source": [
    "# filter cut-offs for PPG and BP\n",
    "lpf_cutoff = 0.5 # Hz\n",
    "hpf_cutoff = 30 # Hz\n",
    "\n",
    "# create filter\n",
    "sos_filter = sp.butter(10, [lpf_cutoff, hpf_cutoff],\n",
    "                       btype = 'bp',\n",
    "                       analog = False,\n",
    "                       output = 'sos',\n",
    "                       fs = fs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5ef535ba",
   "metadata": {},
   "source": [
    "- Filter ECG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "aa7930d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "ecg_filt = sp.sosfiltfilt(sos_filter, ecg)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fec40090",
   "metadata": {},
   "source": [
    "- Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "7835567e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Amplitude [V]')"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = np.arange(0,len(ecg))/fs\n",
    "fig, ax = plt.subplots()\n",
    "ax.plot(t, ecg, color = 'red')\n",
    "ax.plot(t, ecg_filt-1, color = 'orange')\n",
    "ax.set_xlabel('Time [s]')\n",
    "ax.set_ylabel('Amplitude [V]')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ef73e57b",
   "metadata": {
    "id": "ef73e57b"
   },
   "source": [
    "---\n",
    "## Beat detection for pulsatile signals"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "43a45001",
   "metadata": {
    "id": "43a45001"
   },
   "source": [
    "### Setup"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f124a8f",
   "metadata": {
    "id": "8f124a8f"
   },
   "source": [
    "- Import the functions required to detect beats by running the cell containing the required functions [below](#functions)."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b031a895",
   "metadata": {
    "id": "b031a895"
   },
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Question:</b> How have these functions been stored?</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5147241a",
   "metadata": {
    "id": "5147241a"
   },
   "source": [
    "### Detect beats in the PPG signal"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f1a4cdf",
   "metadata": {
    "id": "3f1a4cdf"
   },
   "source": [
    "- Detect beats in the PPG signal using three beat detector algorithms:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "GUSfOVb0m3hD",
   "metadata": {
    "id": "GUSfOVb0m3hD"
   },
   "outputs": [],
   "source": [
    "def pulse_detect(*args, **kwargs):\n",
    "    \"\"\"\n",
    "    Placeholder for a pulse detection function.\n",
    "    \"\"\"\n",
    "    msg = \"\"\"Override the pulse_detect function with the example \n",
    "          provided at the bottom of this notebook.\\n\"\"\"\n",
    "    print(msg)\n",
    "    return None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "8f245cd9",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "8f245cd9",
    "outputId": "e05d1404-a0b4-4084-97db-4a937ac1664f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 82 beats in the PPG signal using the D2max algorithm\n",
      "Detected 82 beats in the PPG signal using the Upslopes algorithm\n",
      "Detected 82 beats in the PPG signal using the Delineator algorithm\n",
      "Detected 82 beats in the PPG signal using the bishop algorithm\n"
     ]
    }
   ],
   "source": [
    "ppg_ibis_d2max = pulse_detect(ppg_filt, fs, 5, 'd2max')\n",
    "print(f\"Detected {len(ppg_ibis_d2max)} beats in the PPG signal using the {'D2max'} algorithm\")\n",
    "\n",
    "ppg_ibis_upslopes = pulse_detect(ppg_filt, fs, 5,'upslopes')\n",
    "print(f\"Detected {len(ppg_ibis_upslopes)} beats in the PPG signal using the {'Upslopes'} algorithm\")\n",
    "\n",
    "ppg_ibis_delineator = pulse_detect(ppg_filt, fs, 5, 'delineator')\n",
    "print(f\"Detected {len(ppg_ibis_delineator)} beats in the PPG signal using the {'Delineator'} algorithm\")\n",
    "\n",
    "#ppg_ibis_qppg = pulse_detect(ppg_filt, fs, 10, 'qppg')\n",
    "#print(f\"Detected {len(ppg_ibis_qppg)} beats in the PPG signal using the {'qppg'} algorithm\")\n",
    "\n",
    "ppg_ibis_bishop = pulse_detect(ppg_filt, fs, 5, 'bishop')\n",
    "print(f\"Detected {len(ppg_ibis_bishop)} beats in the PPG signal using the {'bishop'} algorithm\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0eb51879",
   "metadata": {
    "id": "0eb51879"
   },
   "source": [
    "- Plot the results:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "aa48073c",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 572
    },
    "id": "aa48073c",
    "outputId": "618dae0c-f219-45b2-910b-6d37ea8b05ab"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Bishop')"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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dnLN+t1kk00ARPfqyCOPdDo1EydOxCGHHGKUT29ThzQmfB/0SLuhoaFsQdtOhrv0xGNnQ82H5CZOnFhRVkYJLDcT/fbbb19Rh+WWv9sAAP/973/xxBNPJNf//Oc/ceihh2KLLaKXXbIONttsMwBuR4XHyveZszImbLPNNgBK68CH6PfZZx8AceameRs4kj1eEb2c/y6iZ/3yGA888EAcdthh+NGPfmSVQRI9O5mtra3WOjILkDnTATuZ6mVlFi9LpM1wbWXZsoUmMpWyyfGYImN5z6ZOnQoAeP/732+UVYc8IMjrOcsefZZHeYcSIaLPiCxELzFp0qSKz7761a/iq1/9anLNk4BT7Iydd945+f/111+Pl156KTHQ06ZNAwD88Ic/tPbNxnDmzJkA3BE9G1kmFJdHK/e/ZURvgvT8TbJMnz4d06dPt7YBAHfccUfZ9SOPPIK7777baZyywrQoJdFPnjw5tR3WqUypSydDxx577IE//vGP2HbbbQFEWY7zzjsPBx+cPIGKmTNnYv78+Yn+Tz75ZCxbtgynnHJKIuudd96JPfbYI6nzpz/9CZdffnlinD73uc9h/vz5ZdmO9773vWWyvPe978VNN92UXH/wgx/Eeeedh5NOOqms3H777Zf8/5prrsGZZ56JCRMmAAA23XRTAOZ1wJg7dy4+9KEPJfNdPgetg+feEUccgd133x077bQTsOj8eE++E5uwfa5tBhA5Fy6i32677fDqq69W/CY7Oxmmswtz587FrbfempDbRhtthBtuuKGszG233VY25r333hu33XZbohd2lpiUTNhhhx1w9913Wx9v1MFj5HnJ9sEUSUpy43nJazJL6l5G2i7nTNYxkWljYyPa29sTmSTR+8i044474tlnn43mhgbWORA5sbfcckvF2wZN756Q4Dq8vnmemsbzuc99rmJuDBmUUqPu31577aUGGgAUALV06VJrmauuukpdc801znZqa2vVqaeeav1+6dKlaty4cerRRx9NPluxYoVav359Jnk/+tGPqne9611ln73xxhvJ/3t7exUA1dLSknx29dVXq0984hPJdWdnp7rwwgtVZ2dn8hnrgbH//vsrAOp///ufUkqpBx98UAFQM2bMsNbZYYcdFAA1f/58pZRSS5YsqSgzkiBl22OPPcrkV0qpT3/60+rGG2+0tnH//fer5uZmtWLFiuSz//3vfyqfz1v76evrUwsWLHDK1tHRoVauXJlpPIOF9evXl80ViWKxqK666irV3d2dfPb00087x/jCCy8oAGrSpEnJZ0TknisLr1UvXzpJrZkLpW6aotTCa9WBBx6oACTyPf300wqAmjp1apn8r776anL9jW98QwFQP/3pT5PPBmKerlmzRj388MNln82bN0+9+eab1n4WLVqkzjnnHNXb26uUUmrZsmUKgBo3bpy1TqFQUH/5y1+c65f1ct999ymllFq7dq360Y9+lPRTLBYr6sjro446SgFQc+bMUUop9frrr1vrFItFpZRSP/jBDxQA9e1vf9va7lNPPaUuvvji5PrSSy9VANTZZ59trbPFFlsoAOr5559XNqxZs0a1trZav7/pppsUgDJbPmfOHHXHHXck17feeqs67rjjkuvly5erY445RrW3tyefXXTRRer+++9PrltbW9WaNWus/fYXABYoCycOOykPxr/BIPqDDz5YAVA9PT0D3vZw4etf/7r685//nKnOHXfcof773/8m10uXLlW/+c1vkms2QH/605+Sz+Ri3HXXXRUA9dhjjymlIuMy0oled4iY6HVnbCCwaNGixGEKiLBo0SIFQG2xxRbJZ0uWLMms+7Vr16qnn346uV61apUCoE4++WRrnXPPPVcBUOecc07y2VDN07q6Omc/hUJBzZ49u0wPL7zwQup6lvK/+eab6hvf+Ibq6+tz1vnsZz+bXD/66KNq3rx5yfV9992nAKhXXnlFKaVUe3u7AqD22GMPa7//+te/FAB12223JZ8ddNBB6sQTT7TK0draqk477bSyoOdXv/qVuuuuu5LrT33qUwpAmUOdFcViUT3wwAOJU/J2QSD6AUBPT496+eWXB7zd0QhpNL73ve+p008/Pbn+61//qgAk3m2xWFQtLS3qggsuGFI5fbF06dKyqPmRRx5RBx100Khy+kYqenp61EEHHVQWGQ0UFi1alESuJtx8880KgLryyiuTz+rr69WBBx444LJIrF69Wr322msD3m41jkpra6vTETDhtttuK8sgnnjiiWqfffYpK7Ns2bJMbfqgs7MzyU5saHARPUXfjy7MmDFDLViwYLjFCAgIeJtjwYIF2GuvvZyPc76dcMopp6Cnpwdz5swZblECBhhE9JhSaobxu0D0AQEBAQEBb2+4iD48XhcQEBAQEDCK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iy8mB/V22WUXAMDJJ59slf9jH/sYgJITy/pyEf25556LrbbaCttttx2Ayres6eA5d/bZZ+Poo49OnBEXsqTuuX25j63jmGOOKWtvxowZWLJkCY488sikzP7774/jjjsuuZZPjmy22WYASsRiAs8buR3ok7p3Eb0kUZkRypK6l9kd03qQdVj/pkc6uT22RyyrKfNha3+fffbB0UcfjUsvvdRa5+CDoye6eW7LbJVrjcpMLOva5Bzor3keciilRt2/vfbaSw00ACgAatGiRdYy48aNU1tssYX1+2KxqACojTbayFrmrrvuUgDUeeedl3z229/+Vv3jH/9wynfjjTeq9evXV8jLaG9vV9/85jdVe3u7Ukqpjo6OijLxbwSoYrGolFLqxRdfVADUI488Ym135513VgDUk08+qZRS6oEHHlAAlH4PZJ3tt99eAVAPPfSQUkqpV155paJMNSgWi4nsAwkp22677VamF76v++23n7WN008/vWzMhUJBnXLKKerFF1+09rNo0SI1a9Ys1dHRkXzW1dWlCoVCcn3PPfeoOXPmlPXF99iG1tbWsn6VUmrVqlXOOj74wx/+oO64444yOR588MHkesWKFWry5Mnq0UcfTT77xje+oU477TRrm88884wCoCZNmpR85jNXvv/976ubbropuW5oaFAAknE+9thjCoCaOnVqUub2229X3//+95PrU089VQFQF198sbXv9evXO22CCXfddZc67LDDkrna19enGhsb1e9+9ztrPzfddFOZ/Vm4cKECoJqbmyvq8PxYuXKl2meffdTjjz9ubXfvvfdWANR9992nlFLq7rvvVgDUCy+8oJRSKp/PV9SR10ceeaQCoObOnauUiuatrQ6P+Xvf+54CoM455xxru1//+tfL6lx44YUKQNl8kXUmTZqkAKgnnnjCpHqllFLXXnutuuWWW5Lrzs5O9eabbybXF198sQKgzj333OSzHXbYQX3pS19Krvfff/+yfm+88UYFoGxuT5w4UR1xxBHJ9e23365++9vfWuXqLwAsUBZOHHZSHox/g0H0tbW1CkAZmUp0dnaqzs5OZzt33XWXevXVV51l7rzzTpXP56uSk/HUU0+pxx57zPo9k9PXvva15LM1a9Y4F4hSSu2zzz7q8MMPT66vvPJKBUC1trYqpZR6/PHHFQB17LHHJmXkYtxll10UgES+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PF73apY8QM9lk002afhsn332wT777JNd00TlmcY73lF7GvEXv/gFvvvd72YLaptttsEuu+yCM888U+177733ximnnIL/+q/khYW+iUgTm5yYj7mgxUjgHcMu0IL1HfLbeOONccABB6htAGgY7z/+8Q/cc889o7pHXHwn6N1tnJAQcJGTIiA+8sgj1Tp77bUXrrzySuy4444AkoDikksuwVve8paszHvf+15ce+212X049thjMTQ0hM985jMAEqfywAMPYKuttsrq/P3vf8e1116bOZwPfehDWLhwIb70pS9lZbbffvs6XXbYYQf86Ec/yq7f+ta34tJLL8WHPvSh7LN11103A10gCWJ/9KMfYf311wdQs9MOO+ygjvncc8/FgQcemDloH3VPY95///2xbNmyLOAioaDBFV9G/9a3vhV///vfs3Y5ayHNhYsvvhi33nprpmdXVxd+8IMf1JW55557MhsAwH777YfLL788A3j6u8suuzS0T7LLLrvgpptuamBHfIEKBWE77bQTANl38ad86B5RsJwH6Pn78KV7lgcYN9poI7zwwgvZfSUdfcEx12nLLbfEkiVLsvHQmLbbbrvs+s4778Qtt9zS8Jw+MRL8J3VdIV9J99fH/hxxxBG46qqrVN3HVay1q92/XXfd1Y61ALAA7EsvvaSW+eMf/2ivu+46bzu77767/cEPfqB+v2LFCrv33nvbp556Kvusv7/fDg8P59L3uOOOs//93/9d99nQ0FD2/+HhYQvAbrLJJnX6H3nkkXVlrrjiirq+yQ4k733vey0A+8wzz1hrrf3HP/5hAdi3vOUtap3tt9/eArD33nuvtdbaZ599tqHMVBKu2y677GIB2HvuuSf77Gtf+5q95ZZb1DYeeeQRu9dee9mVK1dmny1fvtyOjIyo/YyMjNjnn3/eq1u1Wq27r5Mpw8PDdeOR5KabbrKVSiW7XrhwYd1c5/LYY481zNONNtooOFeWLFli+/v7s+uPfOQjFoAdHBy01lr70EMPWQB2zpw5WZnBwUG7fPny7Przn/+8BWBPP/307LOxmKflcrlhzDfffLNdtmyZ2s+iRYvs+eefn9lu0aJFFoCdPXt2VmbatGkN8+fOO++sszdv96CDDrIA7B133GGttbavr89ecskltlqtZm3wOvz6sMMOswDsBRdcYK219rnnnrMArDFGrXPyySdbAParX/2qWuapp56yl19+eXZ98cUXWwD2lFNOUetsuOGGFoB97LHHrCZDQ0N1NuFy4403WgD26quvzj67+uqr7d13351d33777fa0007Lrnt6euzJJ5+czS9rrf3Vr35l//3vf2fXw8PDmV3HQwDMtwomTjooj8e/8QB6msxTxamOhZx22mn2pptuylVn/vz59uGHH86uly1bZq+55prseunSpXaTTTaxf/7zn7PP+GJMf3TI3nfffdbaZJFMdaDfdttts+s999yzTv+xkiVLlthFixaNaZuvdlmwYEEDIC9ZssQbHEjS399vX3jhhex6xYoVFoD99re/rdY56aSTLAB74oknZp9N1DydM2eO3WCDDdTvR0ZG7Le+9S376KOPZp89//zz9tZbb/W2y/VftmyZ/f73v+8N0ADY4447Lrt+4okn7I033phdP/jgg3bbbbe1L774orU2sTUA+7a3vU3t984777QA7O233559dvjhh9uzzz5b1aO/v9+eddZZdmBgIPvst7/9rZ0/f352/alPfcoCsEuXLlXbiZEFCxYEg9apJgXQj4GMjIzURfuFxMv5559vzzrrrOz65ptvtm94wxtsb29v9tnb3vY2e8UVV0yGekHp7e215XI5u3744YftMccc480KChkbqVQq9vDDD7cPPvjgmLfd29vrzbBuvvlmC8BeddVV2WdvfOMb7bHHHjvmunApl8t17M9YyUQFKvPnz69jKM4++2x72GGH1ZUZj/UzPDxsH3/88TFv99UgPqA3yferl+y22252/vz5k61GIYUU8iqXF198MeoMxqtFzj//fAwNDeGzn/3sZKtSyBiLMeY+a+1u0nfFYbxCCimkEEVWJ5AHgKOPPnqyVShkEqR4vK6QQgoppJBCVmMpgL6QQgoppJBCVmNZLffojTGLASwcwybXA7BkDNt7tUthj3op7FEvhT0apbBJvRT2qJexsMcW1tr1pS9WS6AfazHGzNcOOayJUtijXgp71Ethj0YpbFIvhT3qZbztUVD3hRRSSCGFFLIaSwH0hRRSSCGFFLIaSwH0cXLhZCswxaSwR72stvYwxlxgjPlGRLkFxpj/Si9XW3uMQgqb1Ethj3oZV3sUe/SFFLKGizFmAYANAVQBDAO4A8BR1trncrZxuLX2pvHQsZBCCmleioy+kEIKAYD3WGunA9gYwCIA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4UJsuOGGAGQHtO+++wKo7e1xQJaiv/XWW6+uDt8XlIQWIZWJObXOgw5Jl1BGLwl/sYZEQ1588cWYO3duBm5vf/vb8eCDD+Kwww6ra2ujjRpfvkj22HjjjXH99ddj2223zb7r6uqqcyr/+Z//icsvv7xu8e2///7eg108G5EONu68885405ve1FBHo+4l4SfOY1gYfq98QE92koD+xBNPxFlnnZVdf/7zn69rj5wg/ZWAje4zOUo+tyXhZzBiMldqnz8lIknMNhrfBol5SRPZctdddwUAHHTQQWpZDvS0nnt6etQ6PADyUfc846V5mQcYYw6v8SBfewrFFb52fFtk3LdQHenxZN4+D3b4wWJJuN0oQPI9bsrHHrOV5dNhvKQA+pySB+iNMdh8882za1rQrlx11VV46aWXMkdJC9jnDH/3u9/h+OOPz5wugd3uu++u1qGzBFTHB/S0OMgR+bYE+MEx32l+Ep4BSA70sMMOw9NPP10HIK973evqyjz33HN47LHHsusf//jH2HDDDb0ReF7xnaCnuUB0v5R1kmhvPNxggw3UOsRmUB3q58wzz2woS6D67ne/GwBwwAEHZP0effTRuPXWW7OyH/jABwDUHM473/nOujoA8J3vfAdf+MIXsuvTTjsNS5cuzZzevHnzsM466+Dkk09W9f/IRz5SNw4ebEry4x//GHvuuWcWnPn26MkuX/nKV3DSSSfhox/9qNouSTPUPX9E0hWyEbW3ww47YHBwEO973/uyMsccc0xd0EQBCf1df/31AfjXDAebmKcpYp4A0M45NJPR8/fhx1D30iOpJPQdrWcO9DGHXvfcc09885vfxLnnnqvW+cQnPlGnAwdt35kV/lIiuodScED+38f2jJtYa1e7f7vuuqsdawFgAdiFCxeqZXbeeWe7xx57qN+PjIxYAHbLLbdUy9xxxx0WgP3JT36SfXb11Vfb22+/3avfHXfcYQcGBhr0JRkcHLRnn322HRoastZaWy6XG8rst99+ddcLFy60r3/96+1jjz2mtrvDDjtYAPbf//63tdbaf/zjHxaA3W233dQ62267rQVg77zzTmuttU8//XRDmakkXLeddtrJArB33XWXtbZ2Xw866CC1je9+97sWgL3//vuzOt/73vfs888/r/bz8ssv2xNOOCG7Z5Lcf//99uqrr841nsHBQbt48eK6z6rVaq42JLn++uvtPffck10PDQ3ZJ598Mrvu6emx++23n33qqaeyz84991x71llnqW0+9NBDFoCdPXt29lnMXLngggvsLbfckl2vv/76FoBdtmyZtdbaf/7znxaAnTNnTlbmrrvusj/96U+z6+OPP94CsGeeeaba9+DgoO3p6fHqwuWee+6xX/7yl+3IyIi11tpKpWLf+ta32j/96U9qPzfddJPdZJNN7IsvvmittXbBggUWgO3s7GyoQ+329PTYgw8+2D7xxBNqu29605ssAHvrrbdaa5P5NHPmTPvss89aa5N5wevw68MOO8wCsBdeeGGdblId0u3kk0+2AOzXv/51td0zzjijrs6ZZ55pAdjjjz9erbPJJptYAPaBBx6QjW+TeXrHHXdk15VKxfb19WXXP/7xjy0Ae8opp2Sf7b333vaEE07Irj/4wQ/W9fvXv/7VArCPPPJI9tnuu+9uv/rVr2bXd911V+61mkcAzLcKJk46KI/Hv/EA+nXXXdcCsL29vaNq51//+pddtGiRt8zDDz+cTe5mZcGCBXUOlQuB0xe/+MXss4GBAfvCCy942/3Upz5lTzrppOz6uuuus5tttpktl8vWWmsffPDBhnb5Ytxxxx0tAPvPf/7TWpsA2qsJ6Hfdddc6oLfW2qVLl9rBwUG1jWq1mgVDmlxxxRX24osvHr3Cq5E89dRTFoDdeOONs8+uueYa+53vfCdXO/fee6899dRTs+tnnnnGArB77rmnWueEE06wAOy3v/3t7LOJmqehfvr7+y2AurV44YUX2g9+8IO52r366qstAK9PAmBnzpyZXZ9xxhl1/fzwhz+0AOxf/vIXa621S5YssQBsqVRS+/3JT35iAdjvf//7dWW6u7tVPR555BELwM6fPz/7bO+997af/exns+u5c+daAHbBggVqOyFZsWKF/cxnPmNXrFihlhkeHrarVq1quo/xkALox0Aeeughe/bZZ495u5Mp5XJ5TDI5Ln/+85/t8uXLs+t11lnH7rTTTtn15z73OQsgy/YqlUrQ6U6m/P73v7c33nhjdn3KKacEnWMhYyPLly+3AOyXvvSlMW13ZGTE/uhHP8oyV0l+8IMfNIDpRAH99ddfb3/1q195ywwNDeVOCJrR/9prr/UC59DQkL3tttuy65GREfvxj3/c3nDDDdln06dPr+t3aGjI/uhHP6oLjh977LEGpimvPProo/a4444bF7821cUH9Cb5fvWS3Xbbzc6fP3+y1SgklVWrVmF4eDg7H7Bq1So8/PDDdWcKHnroIWy22Wbel7VMFRkZGcGKFSuycw+FjK8sXrwY66233oTvbfb39+Okk07CN77xjWyf+F//+hfWWWcdbLHFFhOqy1gJfx/FRMmSJUuwZMkSbLfddhPa75okxpj7rLW7id8VQF9IIYUUsmbI8uXLYa0tgtTVUHxAXzxHX0ghhRSyhojvcctCVl8pHq8rpJBCCimkkNVYCqAvpJBCCimkkNVYVss9emPMYgALx7DJ9QAsGcP2Xu1S2KNeCnvUS2GPRilsUi+FPeplLOyxhbV2femL1RLox1qMMfO1Qw5rohT2qJfCHvVS2KNRCpvUS2GPehlvexTUfSGFFFJIIYWsxlIAfSGFFFJIIYWsxlIAfZxcONkKTDEp7FEvhT3qpbBHoxQ2qZfCHvUyrvYo9ugLKaSQQgopZDWWIqMvpJBCCimkkNVYCqAvpJBCCimkkNVYCqD3iDFmX2PM48aYJ40xX5lsfSZDjDGXGGNeMcY85Hy2rjHmRmPME+nfNea9msaYzYwxfzPGPGqMedgY89n08zXSJsaYTmPMPcaYB1J7fCv9fI20B4kxptUYc78x5o/p9RprD2PMAmPMg8aYfxlj5qefrcn2WNsY83tjzGOpH3nTeNujAHpFjDGtAM4FsB+AHQAcYozZYXK1mhT5OYB92WdfAXCztXYbADen12uKVAB8wVq7PYA9AByTzos11SaDAN5urd0JwM4A9jXG7IE11x4knwXwqHO9ptvjbdbanZ1nxddke5wD4C/W2u0A7IRknoyrPQqg12UegCettU9ba4cA/BrAAZOs04SLtfbvAJaxjw8AcFn6/8sAHDiROk2mWGtfstb+M/1/L5JFOhtrqE3Sn8JelV6W0n8Wa6g9AMAYsymAdwH4mfPxGmsPRdZIexhjZgJ4K4CLAcBaO2StXYFxtkcB9LrMBvCcc/18+lkhwIbW2peABPgAbDDJ+kyKGGPmANgFwN1Yg22S0tT/AvAKgButtWu0PQD8EMCXAYw4n63J9rAAbjDG3GeMOSL9bE21x5YAFgO4NN3a+ZkxZhrG2R4F0OtihM+KZxELAQAYY6YD+AOA4621Kydbn8kUa23VWrszgE0BzDPGvG6SVZo0Mca8G8Ar1tr7JluXKST/Ya19A5Jt0GOMMW+dbIUmUdoAvAHA+dbaXQD0YQK2LQqg1+V5AJs515sCeHGSdJlqssgYszEApH9fmWR9JlSMMSUkIH+5tfaq9OM12iYAkFKQtyA507Gm2uM/ALzXGLMAyXbf240xv8Kaaw9Ya19M/74C4Gok26Jrqj2eB/B8ynoBwO+RAP+42qMAel3uBbCNMWauMaYdwIcAXDvJOk0VuRbAx9L/fwzA/0yiLhMqxhiDZH/tUWvt2c5Xa6RNjDHrG2PWTv/fBeC/ADyGNdQe1tqvWms3tdbOQeIz/mqt/QjWUHsYY6YZY2bQ/wHsA+AhrKH2sNa+DOA5Y8xr0o/eAeARjLM9ijfjecQYsz+S/bZWAJdYa0+dXI0mXowxVwLYC8nPKC4C8E0A1wD4LYDNATwL4GBrLT+wt1qKMebNAG4D8CBqe7BfQ7JPv8bZxBjzeiSHh1qRJA6/tdZ+2xgzC2ugPVwxxuwF4IvW2nevqfYwxmyJJIsHEtr6CmvtqWuqPQDAGLMzkoOa7QCeBvAJpGsH42SPAugLKaSQQgopZDWWgrovpJBCCimkkNVYCqAvpJBCCimkkNVYCqAvpJBCCimkkNVYCqAvpJBCCimkkNVYCqAvpJBCCimkkNVYCqAvpJBCCimkkNVYCqAvpJA1VIwxs9KfDv2XMeZlY8wL6f9XGWPOG4f+fm6MecYYc5SnzFuMMY+4P4tcSCGFjE6K5+gLKaQQGGNOBrDKWnvWOPbxcwB/tNb+PlBuTlpujX1nfiGFjKUUGX0hhRRSJ8aYvYwxf0z/f7Ix5jJjzA3GmAXGmPcbY75njHnQGPOX9L3/MMbsaoy5Nf2Fsuvpvd2Bfg42xjxkjHnAGPP38R5XIYWsqVIAfSGFFBKSrZD8vvoBAH4F4G/W2h0B9AN4Vwr2PwZwkLV2VwCXAIh5XfRJAN5prd0JwHvHRfNCCikEbZOtQCGFFDLl5c/W2mFjzINI3mn/l/TzBwHMAfAaAK8DcGPymz9oBfBSRLv/APBzY8xvAVwVKlxIIYU0JwXQF1JIISEZBABr7YgxZtjWDvaMIPEhBsDD1to35WnUWnuUMWZ3JGzBv4wxO1trl46l4oUUUkhB3RdSSCGjl8cBrG+MeRMAGGNKxpjXhioZY7ay1t5trT0JwBIAm42znoUUskZKkdEXUkghoxJr7ZAx5iAAPzLGrIXEr/wQwMOBqmcaY7ZBwgjcDOCBcVW0kELWUCkeryukkEImRIrH6wopZHKkoO4LKaSQiZIeAKeEXpgD4H+RUPmFFFLIGEiR0RdSSCGFFFLIaixFRl9IIYUUUkghq7EUQF9IIYUUUkghq7EUQF9IIYUUUkghq7EUQF9IIYUUUkghq7H8fy95LUNyD4sZAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1,\n",
    "                                  sharex = False,\n",
    "                                  sharey = False,\n",
    "                                  figsize = (8,8))\n",
    "fig.suptitle('IBIs detection') \n",
    "\n",
    "t = np.arange(0, len(ppg_filt)/fs,1.0/fs)\n",
    "\n",
    "ax1.plot(t, ppg_filt, color = 'black')\n",
    "ax1.scatter(t[0] + ppg_ibis_d2max/fs,\n",
    "            ppg_filt[ppg_ibis_d2max],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax1.set_ylabel('PPG [V]')\n",
    "ax1.set_title('D2Max')\n",
    "\n",
    "ax2.plot(t, ppg_filt, color = 'black')\n",
    "ax2.scatter(t[0] + ppg_ibis_upslopes/fs,\n",
    "            ppg_filt[ppg_ibis_upslopes],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax2.set_ylabel('PPG [V]')\n",
    "ax2.set_title('Upslopes')\n",
    "\n",
    "ax3.plot(t, ppg_filt, color = 'black')\n",
    "ax3.scatter(t[0] + ppg_ibis_delineator/fs,\n",
    "            ppg_filt[ppg_ibis_delineator],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax3.set_xlabel('Time [s]')\n",
    "ax3.set_ylabel('PPG [V]')\n",
    "ax3.set_title('Delineator')\n",
    "\n",
    "ax4.plot(t, ppg_filt, color = 'black')\n",
    "ax4.scatter(t[0] + ppg_ibis_bishop/fs,\n",
    "            ppg_filt[ppg_ibis_bishop],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax4.set_xlabel('Time [s]')\n",
    "ax4.set_ylabel('PPG [V]')\n",
    "ax4.set_title('Bishop')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a53801ed",
   "metadata": {
    "id": "a53801ed"
   },
   "source": [
    "We'll use the 'Bishop' algorithm in the rest of this tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d30cafa3",
   "metadata": {
    "id": "d30cafa3"
   },
   "source": [
    "<div class=\"alert alert-block alert-info\"><p><b>Task:</b> Try repeating this for 'rel_segment_no = 3' How do the beat detectors perform on this patient's data?</p></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ad4fb205",
   "metadata": {},
   "source": [
    "### Detect beats in the ECG signal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "f0564ee1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detected 93 beats in the ECG signal using the neurokit algorithm\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/petercharlton/anaconda3/lib/python3.8/site-packages/neurokit2/signal/signal_fixpeaks.py:277: RuntimeWarning: divide by zero encountered in true_divide\n",
      "  mrrs /= th2\n",
      "/Users/petercharlton/anaconda3/lib/python3.8/site-packages/neurokit2/signal/signal_fixpeaks.py:277: RuntimeWarning: invalid value encountered in true_divide\n",
      "  mrrs /= th2\n"
     ]
    }
   ],
   "source": [
    "# based on: https://neuropsychology.github.io/NeuroKit/studies/ecg_benchmark.html\n",
    "\n",
    "import neurokit2 as nk\n",
    "\n",
    "signals, info = nk.ecg_peaks(ecg_filt, sampling_rate=62.5, correct_artifacts=True)\n",
    "\n",
    "ecg_ibis = info[\"ECG_R_Peaks\"]\n",
    "\n",
    "print(\"Detected {} beats in the ECG signal using the {} algorithm\".format(len(ecg_ibis), \"neurokit\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65a2f117",
   "metadata": {
    "id": "65a2f117"
   },
   "source": [
    "### Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "956b1637",
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 572
    },
    "id": "956b1637",
    "outputId": "fe99e538-eedc-4197-97e1-404853cbde5e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'ECG')"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIZCAYAAADQoYepAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAADjaElEQVR4nOxdd7gdRfl+595z7k1uSCEhoQQCkQ4/egyoCIJIUQTsQBQVNIQixQJIE0UsCIoIiKA06SBIF6UrihCQUEQglEBoCSWk3CS3ze+P3Tl3ds6Ub2b3lJsz7/Pkyd09M7uzszPf935lZhnnHBERERERERGthbZGNyAiIiIiIiKi/ogEICIiIiIiogURCUBEREREREQLIhKAiIiIiIiIFkQkABERERERES2ISAAiIiIiIiJaEJEAREREkMEYe5kxtksTtOMOxthXG92OiIihjEgAIiKaGKnCXcoYW8wYe48xdhtjbK2Crn0fY+wbRVxLc+11GGOcMVYq4FqnMMYul89xzvfgnF+a99oREa2MSAAiIpofn+acrwRgdQBvAfhNg9sTERGxAiASgIiIIQLO+TIA1wPYRJxjjHUyxs5gjL3CGHuLMXY+Y2x4+tvKjLFbGWPzU+/BrYyxNdPfTgPwUQDnpN6Fc3T3ZIx9hTE2hzH2DmPsBOW3NsbYcYyxF9Lfr2WMjU1/fiD9f0F6/Q+ldQ5kjD2TtudOxtja0vU2ZYz9jTH2bvosxzPGdgdwPIAvpdeZlZateC/SdpyYtnMeY+wyxtjo9Dfhifhq2kdvq88REdGqiAQgImKIgDHWBeBLAB6STv8cwAYAtgSwHoCJAE5Of2sDcDGAtQFMArAUwDkAwDk/AcDfARzOOV+Jc3645n6bAPgtgK8AWAPAOABrSkWOALAPgB3T398DcG762w7p/2PS6/+LMbYPEmX+WQDj0/tfld5rJIC7APwlvdZ6AO7mnP8FwE8AXJNeZwtN13wt/bcTgA8AWEk8p4TtAWwI4OMATmaMbay5TkRESyESgIiI5sefGWMLACwE8AkAvwAAxhgD8E0AR3PO3+WcL0KiLPcFAM75O5zzP3HOu9PfTkOirKn4PIBbOecPcM6XAzgJwID0+8EATuCcz01/PwXA5y1x/4MB/JRz/gznvC9t65apF2BPAG9yzs/knC/jnC/inP+b2M5pAH7JOX+Rc74YwPcB7Ku044ec86Wc81kAZgHQEYmIiJZC7gSdiIiImmMfzvldjLF2AHsDuD+1zgcAdAF4NOECAAAGoB2oeAx+BWB3ACunv49kjLVzzvsJ910DwKvigHO+hDH2jvT72gBuZIzJpKAfwKqG660N4NeMsTOlcwyJ12ItAC8Q2mRq5xzpeA4S2Sa3403p724kXoKIiJZG9ABERAwRcM77Oec3IFGy2wN4G4lbf1PO+Zj03+g0YRAAvoPE7b0t53wUBt3ygi24PgX6BhLFnFRKCMU46fdXAewh3XsM53wY5/w1w7VfBXCwUn445/yf6W/rmh7d0c7XkZALgUkA+pAkTEZERBgQCUBExBABS7A3Emv+Gc75AIALAfyKMTYhLTORMbZbWmUkEoKwIE3O+4FyybeQxMxNuB7Anoyx7RljHQB+hKzMOB/AaSKRjzE2Pm0fAMxH4qH4gFL++4yxTdPyoxljX0h/uxXAaoyxo9LExpGMsW2ldq7DGDPJq6sAHM0Ym8wYWwmDOQN9lmeLiGh5RAIQEdH8uIUxthhJDsBpAL7KOX86/e1YALMBPMQYW4gkkW7D9LezAAxH4il4CEmCnYxfI4nZv8cYO1u9aXqPwwBcicQb8B6AuUr9mwH8lTG2KL3Htmnd7rStDzLGFjDGtuOc34gkafHqtK1PAdgjLb8ISX7Dp5G4659HktQHANel/7/DGHtM0z8XAfgjkpUHLwFYBuBbmnIRERESGOcu71pERERERETEioboAYiIiIiIiGhBRAIQERERERHRgogEICIiIiIiogURCUBEREREREQLIhKAiIiIiIiIFkQkABERERERES2ISAAiIiIiIiJaEJEAREREREREtCAiAYiIiIiIiGhBRAIQERERERHRgogEICIiIiIiogURCUBEREREREQLIhKAiIiIiIiIFkQkABERERERES2ISAAiIiIiIiJaEJEAREREREREtCAiAYiIiIiIiGhBRAIQERERERHRgogEICIiIiIiogURCUBEREREREQLIhKAiIiIiIiIFkQkABERERERES2ISAAiIiIiIiJaEJEAREREREREtCAiAYiIiIiIiGhBRAIQERERERHRgogEICIiIiIiogURCUBEREREREQLIhKAiIiIiIiIFkQkABERERERES2ISAAiIiIiIiJaEJEAREREREREtCAiAYiIiIiIiGhBRAIQ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zznfEsCaAKYyxv6vwU1qGBhjewKYxzl/tNFtaTJ8hHO+NZJw6mGMsR0a3aAGogRgawC/5ZxvBWAJahz+iAQgDHMBrCUdrwng9Qa1pZnwFmNsdQBI/5/X4PbUFYyxMhLlfwXn/Ib0dEv3CQCkbsz7kOSMtGp/fATAXoyxl5GEDHdmjF2O1u0PAADn/PX0/3kAbkQSXm3VPpkLYG7qKQOA65EQgpr1RyQAYXgEwPqMscmMsQ4A+wK4ucFtagbcDOCr6d9fBXBTA9tSVzDGGJLY3TOc819KP7VknzDGxjPGxqR/DwewC4D/oUX7g3P+fc75mpzzdZDIi3s4519Gi/YHADDGRjDGRoq/AewK4Cm0aJ9wzt8E8CpjbMP01McB/Bc17I+4EVAgGGOfRBLTawdwEef8tMa2qL5gjF0F4GNIvlb1FoAfAPgzgGsBTALwCoAvcM7VRMEVEoyx7QH8HcCTGIzxHo8kD6Dl+oQxtjmShKV2JIbGtZzzHzHGxqEF+0MGY+xjAL7LOd+zlfuDMfYBJFY/kLi/r+Scn9bifbIlkiTRDgAvAvg60vmDGvRHJAAREREREREtiBgCiIiIiIiIaEFEAhAREREREdGCiAQgIiIiIiKiBREJQERERERERAsiEoCIiIiIiIgWRCQAERERERERLYhIACIiIiIiIloQkQBERERERES0ICIBiIiIiIiIaEFEAhAREREREdGCiAQgIiIiIiKiBREJQERERERERAsiEoCIiIiIiIgWRCQAERERERERLYhIACIiIiIiIloQkQBERERERES0ICIBiIiIiIiIaEFEAhAREREREdGCiAQgIiIiIiKiBREJQERERERERAsiEoCIiIiIiIgWRCQAERERERERLYhIACIiIiIiIloQpUY3oJ5YZZVV+DrrrNPoZkRERERERNQFjz766Nuc8/G631qKAKyzzjqYOXNmo5sRERERERFRFzDG5ph+iyGAiIiIiIiIFkQkABERERERES2ISAAiIiIiIiJaEJEAREREREREtCAiAYiIiIiIiGhBRAIQERERERHRgogEIBCLFy/GSSedhN7e3kY3JSIiIiIiwhuRAATilFNOwY9//GNccskljW5KRERERESENyIBCMTSpUsBAD09PQ1uSURERETEkMdLVwB/Xge4si35/6Uran7LltoJMCIiIiIiounw0hXAw9Px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HN96661gjGXq3H///TjqqKMqx/vuuy/WXXfdSpnXXnsNXV1dmcmv4sorr8TPf/7zzHW/+93vZtrDGMNxxx1Xaf9RRx2FTTfdNFNn2223xZ133mnslzvuuAOnnnpq5tyOO+6Iiy66qHI8b968jFC57LLLsNNOO2Wuddppp+GXv/xl5fiBBx7ACy8MfmLjv//9L84999zMfbbaaiv8/ve/rxxvvPHGOPTQQzNlHnzwwQyx+M1vfpPpWxNkJfXggw9miKtpbMjC909/+lPGAv3yl7+MvfbaK1N+zJgxeP755yvHX//617HNNttUjr/3ve9h9OjRmfvdeuutmbX2eTwyct0jjjgCt99+e+V4zz33xNZbb105/uUvf4mJEydW3U9HRmyYNm0adt1118rxkUceiSlTpljr/O9//8PRRx9tLbPuuuvi0ksvzZyT58ett96KlVZaKSOzDjzwQLzwwguVd7TTTjth1KhR1j5dsmQJBgYGjGXefvttlEolLFy4sHJu8uTJOPDAAyvH3/jGN9DR0VF1DXmOjBo1CtOmTasc33HHHfjiF7+YKf/666/jtttuqxx/5StfwYYbbmhsu4BquN12222VPjj++OMxcuTIqjr//e9gLvp7772H3t7eSvuvvfbaqr4HEjllwuc+9zlMnDgY4a6nJyCYAHDO2znnozjnIznnpfRvcVzO0yierDA4HMCdAJ4BcC3n/GnG2AzG2Iy02MkAxgE4jzH2OGPMTLHqAEoOgKpoZVb7pS99Cfvvv3/md8551WB47733MvWPOeYY530pKxTkMAGQVdY/+9nPcPbZZ1e1RbXa5syZU/n77rvvxsEHH5z5vbOzE3fddZezLapFv3z5cuekkBXkgw8+mLFebr31Vhx3XHYl6Zlnnomrrroqc+7nP/955lie6AKyN+LJJ5/MkLZHH30UJ598srXOJptsgs02q+bHy5cvzxzLQnPffffFeuutVzl+6KGHcPjhh1e9M9lD8e677+K3v/1t1X3k6wLZvt588821FpxcZvvtt8eBBx5YGcuf+tSnsNdee1XVkZ/n85//fGZsz5s3D7fccktVnVmzZmWO5bGuazuQHadnnnmm09163nnnobu722llqfd6++23reWB6ncIDArzZcuWZbwIAs8//7zVerzqqqtICkEl13//+9+ryqj3kd/rxRdfjC996UvG68+Z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\n",
      "text/plain": [
       "<Figure size 576x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "fig, (ax1,ax2) = plt.subplots(2, 1,\n",
    "                              sharex = False,\n",
    "                              sharey = False,\n",
    "                              figsize = (8,8))\n",
    "fig.suptitle('Beat detection') \n",
    "\n",
    "t = np.arange(0,len(ppg_filt)/fs,1.0/fs)\n",
    "\n",
    "ax1.plot(t, ppg_filt, color = 'black')\n",
    "ax1.scatter(t[0] + ppg_ibis_bishop/fs,\n",
    "            ppg_filt[ppg_ibis_bishop],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax1.set_ylabel('PPG [au]')\n",
    "\n",
    "ax2.plot(t, ecg_filt, color = 'black')\n",
    "ax2.scatter(t[0] + ecg_ibis/fs,\n",
    "            ecg_filt[ecg_ibis],\n",
    "            color = 'orange',\n",
    "            marker = 'o')\n",
    "ax2.set_xlabel('Time [s]')\n",
    "ax2.set_ylabel('ECG')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5c00142a",
   "metadata": {},
   "source": [
    "## Identifying fiducial points"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ef4c127",
   "metadata": {},
   "source": [
    "- Extract R-waves from the ECG: _This is straightforward because the ECG beat detection algorithm provides R-wave indices._"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "2550f17c",
   "metadata": {},
   "outputs": [],
   "source": [
    "import copy\n",
    "r_waves = copy.deepcopy(ecg_ibis)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cffc7f75",
   "metadata": {},
   "source": [
    "- Extract pulse onsets from the PPG: _PPG beat detection algorithms usually provide indices of PPG pulse peaks, which are not ideal for pulse arrival time estimation. Instead, we will extract indices of pulse onsets:_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "fb8115ba",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Find all the local minima (troughs) in the PPG signal\n",
    "import scipy.signal as signal\n",
    "minima = signal.argrelmin(ppg_filt)[0]\n",
    "\n",
    "# Find the pulse onset corresponding to each PPG pulse peak (by assuming that the local minimum immediately preceeding the pulse peak is the pulse onset)\n",
    "\n",
    "# - We'll use a function to find the index in a list which immediately preceeds a point\n",
    "def find_previous(array, value):\n",
    "    array = np.asarray(array)\n",
    "    diffs = array - value\n",
    "    diffs = np.where(diffs<0, diffs, -100000)\n",
    "    idx = diffs.argmax()\n",
    "    return array[idx]\n",
    "\n",
    "# - Find pulse onsets\n",
    "onsets = []\n",
    "for no in range(0,len(ppg_ibis_bishop)):\n",
    "    onsets.append(find_previous(minima, ppg_ibis_bishop[no]))\n",
    "onsets = np.array(onsets)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1221794",
   "metadata": {},
   "source": [
    "- Plot the results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "id": "c49488e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fb8e1cea490>"
      ]
     },
     "execution_count": 117,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "t = np.arange(0,len(ppg_filt)/fs,1.0/fs)\n",
    "\n",
    "plt.plot(t, ppg_filt, color = 'black')\n",
    "plt.scatter(t[0] + ppg_ibis_bishop/fs,\n",
    "            ppg_filt[ppg_ibis_bishop],\n",
    "            color = 'orange',\n",
    "            marker = 'o',\n",
    "            label = 'peaks')\n",
    "plt.scatter(t[0] + onsets/fs,\n",
    "            ppg_filt[onsets],\n",
    "            color = 'blue',\n",
    "            marker = 'o',\n",
    "            label = 'onsets')\n",
    "plt.ylabel('PPG [au]')\n",
    "plt.xlim(0,5)\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3c168d23",
   "metadata": {},
   "source": [
    "## Calculate pulse arrival time"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eccd4621",
   "metadata": {},
   "source": [
    "- Now we'll calculate the pulse arrival time as the time delay between each R-wave and the subsequent pulse onset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "id": "d0af1687",
   "metadata": {},
   "outputs": [],
   "source": [
    "# A function to find the index in a list which immediately follows a point\n",
    "def find_next(array, value):\n",
    "    array = np.asarray(array)\n",
    "    diffs = array - value\n",
    "    diffs = np.where(diffs>0, diffs, 100000)\n",
    "    idx = diffs.argmin()\n",
    "    return array[idx]\n",
    "\n",
    "# - Find relevant pulse onset for each R-wave\n",
    "rel_onsets = []\n",
    "rel_r_wave_inds = []\n",
    "for no in range(0,len(r_waves)):\n",
    "    curr_onset = find_next(onsets, r_waves[no])\n",
    "    if curr_onset > r_waves[no] and curr_onset < (r_waves[no] + 0.5*fs):\n",
    "        rel_onsets.append(curr_onset)\n",
    "        rel_r_wave_inds.append(no)\n",
    "\n",
    "pat = 1000*(rel_onsets - r_waves[rel_r_wave_inds])/fs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "b8ad2568",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Note that PATs were only provided for 82 out of 93 beats\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "plt.plot(pat, color = 'black')\n",
    "plt.ylabel('PAT [ms]')\n",
    "plt.xlabel('Beat no.')\n",
    "\n",
    "print('Note that PATs were only provided for {} out of {} beats'.format(len(pat), len(r_waves)))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "41e8edf5",
   "metadata": {
    "id": "41e8edf5"
   },
   "source": [
    "---\n",
    "## Functions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1ecd26af",
   "metadata": {
    "id": "1ecd26af"
   },
   "source": [
    "The following functions are required for this tutorial. Run the cell below and then return to the top of the page."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "id": "36fb7dce",
   "metadata": {
    "id": "36fb7dce",
    "tags": [
     "hide-input"
    ]
   },
   "outputs": [],
   "source": [
    "import scipy.signal as sp\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def pulse_detect(x,fs,w,alg,vis = False):\n",
    "    \"\"\"\n",
    "    Description: Pulse detection and correction from pulsatile signals\n",
    "    Inputs:  x, array with pulsatile signal [user defined units]\n",
    "             fs, sampling rate of signal [Hz]\n",
    "             w, window length for analysis [s]\n",
    "             alg, string with the name of the algorithm to apply ['heartpy','d2max','upslopes','delineator','qppg','bishop']\n",
    "             vis, visualisation option [True, False]\n",
    "    Outputs: ibis, location of cardiac cycles as detected by the selected algorithm [number of samples]\n",
    "    \n",
    "    Algorithms:       1: HeartPy (van Gent et al, 2019, DOI: 10.1016/j.trf.2019.09.015)\n",
    "                      2: 2nd derivative maxima (Elgendi et al, 2013, DOI: 10.1371/journal.pone.0076585)\n",
    "                      3: Systolic upslopes (Arguello Prada and Serna Maldonado, 2018, \n",
    "                         DOI: 10.1080/03091902.2019.1572237)\n",
    "                      4: Delineator (Li et al, 2010, DOI: 10.1109/TBME.2005.855725)\n",
    "                      5: qppg (Vest et al, 2010, DOI: 10.1088/1361-6579/aae021)\n",
    "                      6: Bishop (Bishop and Ercole, 2018, DOI: 10.1007/978-3-319-65798-1_39)\n",
    "    Fiducial points:  1: Systolic peak (pks)\n",
    "                      2: Onset, as the minimum before the systolic peak (ons)\n",
    "                      3: Onset, using the tangent intersection method (ti) \n",
    "                      4: Diastolic peak (dpk)\n",
    "                      5: Maximum slope (m1d)\n",
    "                      6: a point from second derivative PPG (a2d)\n",
    "                      7: b point from second derivative PPG (b2d)\n",
    "                      8: c point from second derivative PPG (c2d)\n",
    "                      9: d point from second derivative PPG (d2d)\n",
    "                      10: e point from second derivative PPG (e2d)\n",
    "                      11: p1 from the third derivative PPG (p1)    \n",
    "                      12: p2 from the third derivative PPG (p2)\n",
    "    \n",
    "    Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
    "    \n",
    "    Version: 1.0 - June 2022\n",
    "             2.0 - July 2022: Bug corrections\n",
    "             2.1 - March 2023: Peter Charlton additional beat detectors\n",
    "    \n",
    "    Developed by: Elisa Mejía-Mejía\n",
    "                   City, University of London\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Check selected algorithm\n",
    "    pos_alg = ['heartpy','d2max','upslopes','delineator','qppg','bishop']\n",
    "    if not(alg in pos_alg):\n",
    "        print('Unknown algorithm determined. Using D2max as default')\n",
    "        alg = 'd2max'\n",
    "    \n",
    "    # Pre-processing of signal\n",
    "    x_d = sp.detrend(x)\n",
    "    sos = sp.butter(10, [0.5, 10], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
    "    x_f = sp.sosfiltfilt(sos, x_d)\n",
    "    \n",
    "    # Peak detection in windows of length w\n",
    "    n_int = np.floor(len(x_f)/(w*fs))\n",
    "    for i in range(int(n_int)):\n",
    "        start = round(i*fs*w)\n",
    "        stop = round((i + 1)*fs*w - 1)\n",
    "        #print('Start: ' + str(start) + ', stop: ' + str(stop))\n",
    "        aux = x_f[range(start,stop)]\n",
    "        if alg == 'heartpy':\n",
    "            locs = heartpy(aux,fs,40,180,5)\n",
    "        elif alg == 'd2max':\n",
    "            locs = d2max(aux,fs)\n",
    "        elif alg == 'upslopes':\n",
    "            locs = upslopes(aux)\n",
    "        elif alg == 'delineator':\n",
    "            locs = delineator(aux,fs)  \n",
    "        elif alg == 'qppg':\n",
    "            locs = qppg(aux,fs)      \n",
    "        elif alg == 'bishop':\n",
    "            locs = bishop(aux)     \n",
    "        locs = locs + start\n",
    "        if i == 0:\n",
    "            ibis = locs\n",
    "        else:\n",
    "            ibis = np.append(ibis,locs)\n",
    "    if n_int*fs*w != len(x_f):\n",
    "        start = stop + 1\n",
    "        stop = len(x_f)\n",
    "        aux = x_f[range(start,stop)]\n",
    "        if len(aux) > 20:\n",
    "            if alg == 'heartpy':\n",
    "                locs = heartpy(aux,fs,40,180,5)\n",
    "            elif alg == 'd2max':\n",
    "                locs = d2max(aux,fs)\n",
    "            elif alg == 'upslopes':\n",
    "                locs = upslopes(aux)\n",
    "            elif alg == 'delineator':\n",
    "                locs = delineator(aux,fs) \n",
    "            elif alg == 'qppg':\n",
    "                locs = qppg(aux,fs)     \n",
    "            elif alg == 'bishop':\n",
    "                locs = bishop(aux)        \n",
    "            locs = locs + start\n",
    "            ibis = np.append(ibis,locs)\n",
    "    ind, = np.where(ibis <= len(x_f))\n",
    "    ibis = ibis[ind]\n",
    "    \n",
    "        \n",
    "    dif = np.diff(ibis)\n",
    "    dif = np.append(0, dif)\n",
    "    ind, = np.where(dif != 0)\n",
    "    ibis = ibis[ind]\n",
    "        \n",
    "    ibis = peak_correction(x,ibis,fs,20,5,[0.5, 1.5],vis = False)\n",
    "    \n",
    "    if vis:\n",
    "        fig, (ax1,ax2) = plt.subplots(2, 1, sharex = False, sharey = False)\n",
    "        fig.suptitle('Peak detection')\n",
    "        \n",
    "        ax1.plot(x, color = 'lightgrey', zorder = 1)\n",
    "        ax1.scatter(ibis, x[ibis], marker = 'o', color = 'orange', zorder = 2)\n",
    "        ax1.set_xlabel('Samples')\n",
    "        ax1.set_ylabel('Amplitude [V]')\n",
    "        \n",
    "        ax2.plot(x_f, color = 'lightgrey', zorder = 1)\n",
    "        ax2.scatter(ibis, x_f[ibis], marker = 'o', color = 'orange', zorder = 2)\n",
    "        ax2.set_xlabel('Samples')\n",
    "        ax2.set_ylabel('Amplitude [V]')\n",
    "            \n",
    "    return ibis\n",
    "\n",
    "def peak_correction(x,locs,fs,t,stride,th_len,vis = False):\n",
    "    \"\"\"\n",
    "    Correction of peaks detected from pulsatile signals\n",
    "    \n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              locs, location of the detected interbeat intervals [number of samples]\n",
    "              fs, sampling rate [Hz]\n",
    "              t, duration of intervals for the correction [s]\n",
    "              stride, stride between consecutive intervals for the correction [s]\n",
    "              th_len, array with the percentage of lower and higher thresholds for comparing the duration of IBIs \n",
    "              [proportions] \n",
    "              vis, visualisation option [True, False]\n",
    "    Outputs:  ibis, array with the corrected points related to the start of the inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "                   2.0 -   July 2022: Bug corrections\n",
    "\n",
    "    \"\"\"\n",
    "    \n",
    "    if vis:\n",
    "        fig = plt.figure()\n",
    "        plt.plot(x, color = 'lightgrey', zorder = 1)\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'red', zorder = 2, label = 'Original')\n",
    "        plt.title('Peak correction')\n",
    "            \n",
    "    # Correction of long and short IBIs\n",
    "    aux_locs = np.empty(0)\n",
    "    len_window = np.round(t*fs)\n",
    "    #print('Window length: ' + str(len_window))\n",
    "    first_i = 0\n",
    "    second_i = len_window - 1\n",
    "    \n",
    "    # check whether the input signal was long enough for this step (added by PC, 20230309)\n",
    "    if second_i >= len(x):\n",
    "        print('Input signal not long enough for peak correction')\n",
    "    \n",
    "    while second_i < len(x):\n",
    "        ind1, = np.where(locs >= first_i)\n",
    "        ind2, = np.where(locs <= second_i)\n",
    "        ind = np.intersect1d(ind1, ind2)\n",
    "        \n",
    "        win = locs[ind]\n",
    "        dif = np.diff(win)\n",
    "        #print('Indices: ' + str(ind) + ', locs: ' + str(locs[ind]) + ', dif: ' + str(dif))\n",
    "        \n",
    "        # Correction of repeated IBIs\n",
    "        ind_zeros, = np.where(dif == 0)\n",
    "        #print(ind_zeros, dif[ind_zeros], dif)\n",
    "        if len(ind_zeros) != 0:\n",
    "            #print('entro!' + str(dif) + ',' + str(ind_zeros))\n",
    "            dif = np.delete(dif, ind_zeros)\n",
    "            #print(dif)\n",
    "        \n",
    "        th_dif = np.zeros(2)\n",
    "        th_dif[0] = th_len[0]*np.median(dif)\n",
    "        th_dif[1] = th_len[1]*np.median(dif)\n",
    "        \n",
    "        th_amp = np.zeros(2)\n",
    "        th_amp[0] = 0.75*np.median(x[win])\n",
    "        th_amp[1] = 1.25*np.median(x[win])\n",
    "        #print('Length thresholds: ' + str(th_dif) + ', amplitude thresholds: ' + str(th_amp))\n",
    "        \n",
    "        j = 0\n",
    "        while j < len(dif):\n",
    "            if dif[j] <= th_dif[0]:\n",
    "                #print('IBI pos ' + str(j) + ': Shorter than threshold')\n",
    "                if j == 0:\n",
    "                    opt = np.append(win[j], win[j + 1])\n",
    "                else:\n",
    "                    opt = np.append(win[j] - win[j - 1], win[j + 1] - win[j - 1])\n",
    "                #print('Optional: ' + str(opt))\n",
    "                dif_abs = np.abs(opt - np.median(dif))\n",
    "                min_val = np.min(dif_abs)\n",
    "                ind_min, = np.where(dif_abs == min_val)\n",
    "                ind_min = ind_min[0]\n",
    "                #print('Minimum: ' + str(min_val) + ', index: ' + str(ind_min))\n",
    "                if ind_min == 0:\n",
    "                    #print('Original window: ' + str(win), end = '')\n",
    "                    win = np.delete(win, j + 1) \n",
    "                    #print(', modified window: ' + str(win))\n",
    "                else:\n",
    "                    #print('Original window: ' + str(win), end = '')\n",
    "                    win = np.delete(win, j) \n",
    "                    #print(', modified window: ' + str(win))\n",
    "                dif = np.diff(win)\n",
    "            elif dif[j] >= th_dif[1]:\n",
    "                #print('IBI pos ' + str(j) + ': Longer than threshold')\n",
    "                aux_x = x[win[j]:win[j + 1]]\n",
    "                locs_pks, _ = sp.find_peaks(aux_x)\n",
    "                #print('Possible peaks: ' + str(locs_pks))\n",
    "                #fig = plt.figure()\n",
    "                #plt.plot(aux_x)\n",
    "                #plt.scatter(locs_pks,aux_x[locs_pks],marker = 'o',color = 'red')\n",
    "                               \n",
    "                if len(locs_pks) > 0:\n",
    "                    locs_pks = locs_pks + win[j]\n",
    "                    #print('Possible peaks with offset: ' + str(locs_pks) + ', amplitudes: ' + str(x[locs_pks]) \n",
    "                    #     + ', amplitude thresholds: ' + str(th_amp))\n",
    "                    #ind1, = np.where(x[locs_pks] >= th_amp[0])\n",
    "                    #ind2, = np.where(x[locs_pks] <= th_amp[1])\n",
    "                    #ind = np.intersect1d(ind1, ind2)\n",
    "                    #print(th_amp, locs_pks, ind, dif_abs, locs_pks, win[j])\n",
    "                    #locs_pks = locs_pks[ind]\n",
    "                    #print('Locations: ' + str(locs_pks))\n",
    "                \n",
    "                    opt = locs_pks - win[j]\n",
    "                    \n",
    "                    dif_abs = np.abs(opt - np.median(dif))\n",
    "                    #print(dif_abs, opt, locs_pks)\n",
    "                    min_val = np.min(dif_abs)\n",
    "                    ind_min, = np.where(dif_abs == min_val)\n",
    "                    \n",
    "                    win = np.append(win, locs_pks[ind_min])\n",
    "                    win = np.sort(win)                    \n",
    "                    dif = np.diff(win)\n",
    "                    j = j + 1\n",
    "                else:\n",
    "                    opt = np.round(win[j] + np.median(dif))\n",
    "                    if opt < win[j + 1]:\n",
    "                        #print(win[j], np.median(dif), opt, dif, ind_min, locs_pks)\n",
    "                        win = np.append(win, opt.astype(int))\n",
    "                        win = np.sort(win)                  \n",
    "                        dif = np.diff(win)\n",
    "                        j = j + 1\n",
    "                    else:\n",
    "                        j = j + 1\n",
    "            else:\n",
    "                j = j + 1\n",
    "        \n",
    "        if len(aux_locs) == 0:\n",
    "            aux_locs = win\n",
    "        else:\n",
    "            aux_locs = np.append(aux_locs, win)\n",
    "        aux_locs = np.sort(aux_locs)\n",
    "        \n",
    "        first_i = first_i + stride*fs - 1\n",
    "        second_i = second_i + stride*fs - 1\n",
    "    \n",
    "    locs = aux_locs\n",
    "\n",
    "    dif = np.diff(locs)\n",
    "    dif = np.append(0, dif)\n",
    "    ind, = np.where(dif != 0)\n",
    "    locs = locs[ind]\n",
    "    \n",
    "    if vis:\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'green', zorder = 2, label = 'After length correction')\n",
    "    \n",
    "    # Correction of points that are not peaks\n",
    "    i = 0\n",
    "    pre_loc = 0\n",
    "    while i < len(locs):\n",
    "        if locs[i] == 0:\n",
    "            locs = np.delete(locs, i)\n",
    "        elif locs[i] == len(x):\n",
    "            locs = np.delete(locs, i)\n",
    "        else:\n",
    "            #print('Previous: ' + str(x[locs[i] - 1]) + ', actual: ' + str(x[locs[i]]) + ', next: ' + str(x[locs[i] + 1])) \n",
    "            cond = (x[locs[i]] >= x[locs[i] - 1]) and (x[locs[i]] >= x[locs[i] + 1])\n",
    "            #print('Condition: ' + str(cond)) \n",
    "            if cond:\n",
    "                i = i + 1\n",
    "            else:\n",
    "                if locs[i] == pre_loc:\n",
    "                    i = i + 1\n",
    "                else:\n",
    "                    if i == 0:\n",
    "                        aux = x[0:locs[i + 1] - 1]\n",
    "                        aux_loc = locs[i] - 1\n",
    "                        aux_start = 0\n",
    "                    elif i == len(locs) - 1:\n",
    "                        aux = x[locs[i - 1]:len(x) - 1]\n",
    "                        aux_loc = locs[i] - locs[i - 1]\n",
    "                        aux_start = locs[i - 1]\n",
    "                    else:\n",
    "                        aux = x[locs[i - 1]:locs[i + 1]]\n",
    "                        aux_loc = locs[i] - locs[i - 1]\n",
    "                        aux_start = locs[i - 1]\n",
    "                    #print('i ' + str(i) + ' out of ' + str(len(locs)) + ', aux length: ' + str(len(aux)) + \n",
    "                    #      ', location: ' + str(aux_loc))\n",
    "                    #print('Locs i - 1: ' + str(locs[i - 1]) + ', locs i: ' + str(locs[i]) + ', locs i + 1: ' + str(locs[i + 1]))\n",
    "\n",
    "                    pre = find_closest_peak(aux, aux_loc, 'backward')\n",
    "                    pos = find_closest_peak(aux, aux_loc, 'forward')\n",
    "                    #print('Previous: ' + str(pre) + ', next: ' + str(pos) + ', actual: ' + str(aux_loc))\n",
    "\n",
    "                    ibi_pre = np.append(pre - 1, len(aux) - pre)\n",
    "                    ibi_pos = np.append(pos - 1, len(aux) - pos)\n",
    "                    ibi_act = np.append(aux_loc - 1, len(aux) - aux_loc)\n",
    "                    #print('Previous IBIs: ' + str(ibi_pre) + ', next IBIs: ' + str(ibi_pos) + \n",
    "                    #      ', actual IBIs: ' + str(ibi_act))\n",
    "\n",
    "                    dif_pre = np.abs(ibi_pre - np.mean(np.diff(locs)))\n",
    "                    dif_pos = np.abs(ibi_pos - np.mean(np.diff(locs)))\n",
    "                    dif_act = np.abs(ibi_act - np.mean(np.diff(locs)))\n",
    "                    #print('Previous DIF: ' + str(dif_pre) + ', next DIF: ' + str(dif_pos) + \n",
    "                    #      ', actual DIF: ' + str(dif_act))\n",
    "\n",
    "                    avgs = [np.mean(dif_pre), np.mean(dif_pos), np.mean(dif_act)]\n",
    "                    min_avg = np.min(avgs)\n",
    "                    ind, = np.where(min_avg == avgs)\n",
    "                    #print('Averages: ' + str(avgs) + ', min index: ' + str(ind))\n",
    "                    if len(ind) != 0:                        \n",
    "                        ind = ind[0]\n",
    "\n",
    "                    if ind == 0:\n",
    "                        locs[i] = pre + aux_start - 1                    \n",
    "                    elif ind == 1:\n",
    "                        locs[i] = pos + aux_start - 1\n",
    "                    elif ind == 2:\n",
    "                        locs[i] = aux_loc + aux_start - 1\n",
    "                    i = i + 1\n",
    "    \n",
    "    if vis: \n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'yellow', zorder = 2, label = 'After not-peak correction')\n",
    "    \n",
    "    # Correction of peaks according to amplitude\n",
    "    len_window = np.round(t*fs)\n",
    "    #print('Window length: ' + str(len_window))\n",
    "    delete = np.empty(0)\n",
    "    first_i = 0\n",
    "    second_i = len_window - 1\n",
    "    while second_i < len(x):\n",
    "        ind1, = np.where(locs >= first_i)\n",
    "        ind2, = np.where(locs <= second_i)\n",
    "        ind = np.intersect1d(ind1, ind2)\n",
    "        win = locs[ind]\n",
    "        if np.median(x[win]) > 0:\n",
    "            th_amp_low = 0.5*np.median(x[win])\n",
    "            th_amp_high = 3.0*np.median(x[win])\n",
    "        else:\n",
    "            th_amp_low = -3.0*np.median(x[win])\n",
    "            th_amp_high = 1.5*np.median(x[win])\n",
    "        ind1, = np.where(x[win] < th_amp_low)\n",
    "        ind2, = np.where(x[win] > th_amp_high)\n",
    "        aux_del = np.intersect1d(ind1,ind2)\n",
    "        if len(aux_del) != 0:\n",
    "            for j in aux_del:\n",
    "                ind, = np.where(locs == win[j])\n",
    "                delete = np.append(delete, aux_del)\n",
    "                #print(aux_del, delete)\n",
    "        \n",
    "        first_i = second_i + 1\n",
    "        second_i = second_i + stride*fs - 1\n",
    "    \n",
    "    if vis:\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'cyan', zorder = 2, label = 'After amplitude correction')\n",
    "    \n",
    "    if len(delete) != 0:\n",
    "        #print(delete)\n",
    "        locs = np.delete(locs, delete.astype(int))\n",
    "    \n",
    "    dif = np.diff(locs)\n",
    "    dif = np.append(0, dif)\n",
    "    ind, = np.where(dif >= fs/3)\n",
    "    locs = locs[ind]\n",
    "    \n",
    "    if vis:\n",
    "        plt.scatter(locs,x[locs],marker = 'o',color = 'purple', zorder = 2, label = 'After amplitude correction')\n",
    "        plt.legend()\n",
    "    \n",
    "    return locs\n",
    "\n",
    "def fiducial_points(x,pks,fs,vis = False):\n",
    "    \"\"\"\n",
    "    Description: Pulse detection and correction from pulsatile signals\n",
    "    Inputs:  x, array with pulsatile signal [user defined units]\n",
    "             pks, array with the position of the peaks [number of samples]\n",
    "             fs, sampling rate of signal [Hz]\n",
    "             vis, visualisation option [True, False]\n",
    "    Outputs: fidp, dictionary with the positions of several fiducial points for the cardiac cycles [number of samples]\n",
    "    \n",
    "    Fiducial points:  1: Systolic peak (pks)\n",
    "                      2: Onset, as the minimum before the systolic peak (ons)\n",
    "                      3: Onset, using the tangent intersection method (ti) \n",
    "                      4: Diastolic peak (dpk)\n",
    "                      5: Maximum slope (m1d)\n",
    "                      6: a point from second derivative PPG (a2d)\n",
    "                      7: b point from second derivative PPG (b2d)\n",
    "                      8: c point from second derivative PPG (c2d)\n",
    "                      9: d point from second derivative PPG (d2d)\n",
    "                      10: e point from second derivative PPG (e2d)\n",
    "                      11: p1 from the third derivative PPG (p1)    \n",
    "                      12: p2 from the third derivative PPG (p2)\n",
    "    \n",
    "    Libraries: NumPy (as np), SciPy (Signal, as sp), Matplotlib (PyPlot, as plt)\n",
    "    \n",
    "    Version: 1.0 - June 2022\n",
    "    \n",
    "    Developed by: Elisa Mejía-Mejía\n",
    "                   City, University of London\n",
    "    \n",
    "    \"\"\"    \n",
    "    # First, second and third derivatives\n",
    "    d1x = sp.savgol_filter(x, 9, 5, deriv = 1) \n",
    "    d2x = sp.savgol_filter(x, 9, 5, deriv = 2) \n",
    "    d3x = sp.savgol_filter(x, 9, 5, deriv = 3) \n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x/np.max(x))\n",
    "    #plt.plot(d1x/np.max(d1x))\n",
    "    #plt.plot(d2x/np.max(d2x))\n",
    "    #plt.plot(d3x/np.max(d3x))\n",
    "    \n",
    "    # Search in time series: Onsets between consecutive peaks\n",
    "    ons = np.empty(0)\n",
    "    for i in range(len(pks) - 1):\n",
    "        start = pks[i]\n",
    "        stop = pks[i + 1]\n",
    "        ibi = x[start:stop]\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi, color = 'black')\n",
    "        aux_ons, = np.where(ibi == np.min(ibi))\n",
    "        ind_ons = aux_ons.astype(int)\n",
    "        ons = np.append(ons, ind_ons + start)   \n",
    "        #plt.plot(ind_ons, ibi[ind_ons], marker = 'o', color = 'red') \n",
    "    ons = ons.astype(int)\n",
    "    #print('Onsets: ' + str(ons))\n",
    "    #plt.figure()\n",
    "    #plt.plot(x, color = 'black')\n",
    "    #plt.scatter(pks, x[pks], marker = 'o', color = 'red') \n",
    "    #plt.scatter(ons, x[ons], marker = 'o', color = 'blue') \n",
    "    \n",
    "    # Search in time series: Diastolic peak and dicrotic notch between consecutive onsets\n",
    "    dia = np.empty(0)\n",
    "    dic = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ind_pks = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
    "        if len(ind_pks) != 0:\n",
    "            ind_pks = ind_pks[0]\n",
    "            ind_pks = pks[ind_pks]\n",
    "            ibi_portion = x[ind_pks:stop]\n",
    "            ibi_2d_portion = d2x[ind_pks:stop]\n",
    "            #plt.figure()\n",
    "            #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "            #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
    "            aux_dic, _ = sp.find_peaks(ibi_2d_portion)\n",
    "            aux_dic = aux_dic.astype(int)\n",
    "            aux_dia, _ = sp.find_peaks(-ibi_2d_portion)\n",
    "            aux_dia = aux_dia.astype(int)   \n",
    "            if len(aux_dic) != 0:\n",
    "                ind_max, = np.where(ibi_2d_portion[aux_dic] == np.max(ibi_2d_portion[aux_dic]))\n",
    "                aux_dic_max = aux_dic[ind_max]\n",
    "                if len(aux_dia) != 0:\n",
    "                    nearest = aux_dia - aux_dic_max\n",
    "                    aux_dic = aux_dic_max\n",
    "                    dic = np.append(dic, (aux_dic + ind_pks).astype(int))\n",
    "                    #plt.scatter(aux_dic, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
    "                    ind_dia, = np.where(nearest > 0)\n",
    "                    aux_dia = aux_dia[ind_dia]\n",
    "                    nearest = nearest[ind_dia]\n",
    "                    if len(nearest) != 0:\n",
    "                        ind_nearest, = np.where(nearest == np.min(nearest))\n",
    "                        aux_dia = aux_dia[ind_nearest]\n",
    "                        dia = np.append(dia, (aux_dia + ind_pks).astype(int))\n",
    "                        #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')\n",
    "                        #break\n",
    "                else:\n",
    "                    dic = np.append(dic, (aux_dic_max + ind_pks).astype(int))\n",
    "                    #plt.scatter(aux_dia, ibi_portion[aux_dia]/np.max(ibi_portion), marker = 'o')     \n",
    "    dia = dia.astype(int)\n",
    "    dic = dic.astype(int)\n",
    "    #plt.scatter(dia, x[dia], marker = 'o', color = 'orange')\n",
    "    #plt.scatter(dic, x[dic], marker = 'o', color = 'green')\n",
    "    \n",
    "    # Search in D1: Maximum slope point\n",
    "    m1d = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ind_pks = np.intersect1d(np.where(pks < stop), np.where(pks > start))\n",
    "        if len(ind_pks) != 0:\n",
    "            ind_pks = ind_pks[0]\n",
    "            ind_pks = pks[ind_pks]\n",
    "            ibi_portion = x[start:ind_pks]\n",
    "            ibi_1d_portion = d1x[start:ind_pks]\n",
    "            #plt.figure()\n",
    "            #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "            #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "            aux_m1d, _ = sp.find_peaks(ibi_1d_portion)\n",
    "            aux_m1d = aux_m1d.astype(int)  \n",
    "            if len(aux_m1d) != 0:\n",
    "                ind_max, = np.where(ibi_1d_portion[aux_m1d] == np.max(ibi_1d_portion[aux_m1d]))\n",
    "                aux_m1d_max = aux_m1d[ind_max]\n",
    "                if len(aux_m1d_max) > 1:\n",
    "                    aux_m1d_max = aux_m1d_max[0]\n",
    "                m1d = np.append(m1d, (aux_m1d_max + start).astype(int))\n",
    "                #plt.scatter(aux_m1d, ibi_portion[aux_dic]/np.max(ibi_portion), marker = 'o')\n",
    "                #break    \n",
    "    m1d = m1d.astype(int)\n",
    "    #plt.scatter(m1d, x[m1d], marker = 'o', color = 'purple')\n",
    "    \n",
    "    # Search in time series: Tangent intersection points\n",
    "    tip = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ibi_portion = x[start:stop]\n",
    "        ibi_1d_portion = d1x[start:stop]\n",
    "        ind_m1d = np.intersect1d(np.where(m1d < stop), np.where(m1d > start))\n",
    "        ind_m1d = m1d[ind_m1d] - start\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "        #plt.scatter(ind_m1d, ibi_portion[ind_m1d]/np.max(ibi_portion), marker = 'o')\n",
    "        #plt.scatter(ind_m1d, ibi_1d_portion[ind_m1d]/np.max(ibi_1d_portion), marker = 'o')\n",
    "        aux_tip = np.round(((ibi_portion[0] - ibi_portion[ind_m1d])/ibi_1d_portion[ind_m1d]) + ind_m1d)\n",
    "        aux_tip = aux_tip.astype(int)\n",
    "        tip = np.append(tip, (aux_tip + start).astype(int))        \n",
    "        #plt.scatter(aux_tip, ibi_portion[aux_tip]/np.max(ibi_portion), marker = 'o')\n",
    "        #break\n",
    "    tip = tip.astype(int)\n",
    "    #plt.scatter(tip, x[tip], marker = 'o', color = 'aqua')\n",
    "    \n",
    "    # Search in D2: A, B, C, D and E points\n",
    "    a2d = np.empty(0)\n",
    "    b2d = np.empty(0)\n",
    "    c2d = np.empty(0)\n",
    "    d2d = np.empty(0)\n",
    "    e2d = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ibi_portion = x[start:stop]\n",
    "        ibi_1d_portion = d1x[start:stop]\n",
    "        ibi_2d_portion = d2x[start:stop]\n",
    "        ind_m1d = np.intersect1d(np.where(m1d > start),np.where(m1d < stop))\n",
    "        ind_m1d = m1d[ind_m1d]\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
    "        aux_m2d_pks, _ = sp.find_peaks(ibi_2d_portion)\n",
    "        aux_m2d_ons, _ = sp.find_peaks(-ibi_2d_portion)\n",
    "        if len(ind_m1d) != 0 and len(aux_m2d_pks) != 0 and len(aux_m2d_ons) != 0:\n",
    "            # a point:\n",
    "            ind_a, = np.where(ibi_2d_portion[aux_m2d_pks] == np.max(ibi_2d_portion[aux_m2d_pks]))\n",
    "            ind_a = aux_m2d_pks[ind_a]\n",
    "            if (ind_a < ind_m1d):\n",
    "                a2d = np.append(a2d, ind_a + start)\n",
    "                #plt.scatter(ind_a, ibi_2d_portion[ind_a]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                # b point:\n",
    "                ind_b = np.where(ibi_2d_portion[aux_m2d_ons] == np.min(ibi_2d_portion[aux_m2d_ons]))\n",
    "                ind_b = aux_m2d_ons[ind_b]\n",
    "                if (ind_b > ind_a) and (ind_b < len(ibi_2d_portion)):\n",
    "                    b2d = np.append(b2d, ind_b + start)\n",
    "                    #plt.scatter(ind_b, ibi_2d_portion[ind_b]/np.max(ibi_2d_portion), marker = 'o')\n",
    "            # e point:\n",
    "            ind_e, = np.where(aux_m2d_pks > ind_m1d - start)\n",
    "            aux_m2d_pks = aux_m2d_pks[ind_e]\n",
    "            ind_e, = np.where(aux_m2d_pks < 0.6*len(ibi_2d_portion))\n",
    "            ind_e = aux_m2d_pks[ind_e]\n",
    "            if len(ind_e) >= 1:\n",
    "                if len(ind_e) >= 2:\n",
    "                    ind_e = ind_e[1]\n",
    "                e2d = np.append(e2d, ind_e + start)\n",
    "                #plt.scatter(ind_e, ibi_2d_portion[ind_e]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                # c point:\n",
    "                ind_c, = np.where(aux_m2d_pks < ind_e)\n",
    "                if len(ind_c) != 0:\n",
    "                    ind_c_aux = aux_m2d_pks[ind_c]\n",
    "                    ind_c, = np.where(ibi_2d_portion[ind_c_aux] == np.max(ibi_2d_portion[ind_c_aux]))\n",
    "                    ind_c = ind_c_aux[ind_c]\n",
    "                    if len(ind_c) != 0:\n",
    "                        c2d = np.append(c2d, ind_c + start)\n",
    "                        #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                else:\n",
    "                    aux_m1d_ons, _ = sp.find_peaks(-ibi_1d_portion)\n",
    "                    ind_c, = np.where(aux_m1d_ons < ind_e)\n",
    "                    ind_c_aux = aux_m1d_ons[ind_c]\n",
    "                    if len(ind_c) != 0:\n",
    "                        ind_c, = np.where(ind_c_aux > ind_b)\n",
    "                        ind_c = ind_c_aux[ind_c]\n",
    "                        if len(ind_c) > 1:\n",
    "                            ind_c = ind_c[0]\n",
    "                        c2d = np.append(c2d, ind_c + start)\n",
    "                        #plt.scatter(ind_c, ibi_2d_portion[ind_c]/np.max(ibi_2d_portion), marker = 'o')\n",
    "                # d point:\n",
    "                if (isinstance(ind_c, np.ndarray)) and len(ind_c) != 0:\n",
    "                    ind_d = np.intersect1d(np.where(aux_m2d_ons < ind_e), np.where(aux_m2d_ons > ind_c))\n",
    "                    if len(ind_d) != 0:\n",
    "                        ind_d_aux = aux_m2d_ons[ind_d]\n",
    "                        ind_d, = np.where(ibi_2d_portion[ind_d_aux] == np.min(ibi_2d_portion[ind_d_aux]))\n",
    "                        ind_d = ind_d_aux[ind_d]\n",
    "                        if len(ind_d) != 0:\n",
    "                            d2d = np.append(d2d, ind_d + start)\n",
    "                            #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')                \n",
    "                    else:\n",
    "                        ind_d = ind_c\n",
    "                        d2d = np.append(d2d, ind_d + start)\n",
    "                        #plt.scatter(ind_d, ibi_2d_portion[ind_d]/np.max(ibi_2d_portion), marker = 'o')\n",
    "    a2d = a2d.astype(int)\n",
    "    b2d = b2d.astype(int)\n",
    "    c2d = c2d.astype(int)\n",
    "    d2d = d2d.astype(int)\n",
    "    e2d = e2d.astype(int)\n",
    "    #plt.figure()\n",
    "    #plt.plot(d2x, color = 'black')\n",
    "    #plt.scatter(a2d, d2x[a2d], marker = 'o', color = 'red') \n",
    "    #plt.scatter(b2d, d2x[b2d], marker = 'o', color = 'blue')\n",
    "    #plt.scatter(c2d, d2x[c2d], marker = 'o', color = 'green')\n",
    "    #plt.scatter(d2d, d2x[d2d], marker = 'o', color = 'orange')\n",
    "    #plt.scatter(e2d, d2x[e2d], marker = 'o', color = 'purple')\n",
    "    \n",
    "    # Search in D3: P1 and P2 points\n",
    "    p1p = np.empty(0)\n",
    "    p2p = np.empty(0)\n",
    "    for i in range(len(ons) - 1):\n",
    "        start = ons[i]\n",
    "        stop = ons[i + 1]\n",
    "        ibi_portion = x[start:stop]\n",
    "        ibi_1d_portion = d1x[start:stop]\n",
    "        ibi_2d_portion = d2x[start:stop]\n",
    "        ibi_3d_portion = d3x[start:stop]\n",
    "        ind_b = np.intersect1d(np.where(b2d > start),np.where(b2d < stop))\n",
    "        ind_b = b2d[ind_b]\n",
    "        ind_c = np.intersect1d(np.where(c2d > start),np.where(c2d < stop))\n",
    "        ind_c = c2d[ind_c]\n",
    "        ind_d = np.intersect1d(np.where(d2d > start),np.where(d2d < stop))\n",
    "        ind_d = d2d[ind_d]\n",
    "        ind_dic = np.intersect1d(np.where(dic > start),np.where(dic < stop))\n",
    "        ind_dic = dic[ind_dic]\n",
    "        #plt.figure()\n",
    "        #plt.plot(ibi_portion/np.max(ibi_portion))\n",
    "        #plt.plot(ibi_1d_portion/np.max(ibi_1d_portion))\n",
    "        #plt.plot(ibi_2d_portion/np.max(ibi_2d_portion))\n",
    "        #plt.plot(ibi_3d_portion/np.max(ibi_3d_portion))\n",
    "        #plt.scatter(ind_b - start, ibi_3d_portion[ind_b - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        #plt.scatter(ind_c - start, ibi_3d_portion[ind_c - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        #plt.scatter(ind_d - start, ibi_3d_portion[ind_d - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        #plt.scatter(ind_dic - start, ibi_3d_portion[ind_dic - start]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        aux_p3d_pks, _ = sp.find_peaks(ibi_3d_portion)\n",
    "        aux_p3d_ons, _ = sp.find_peaks(-ibi_3d_portion)\n",
    "        # P1:\n",
    "        if (len(aux_p3d_pks) != 0 and len(ind_b) != 0):\n",
    "            ind_p1, = np.where(aux_p3d_pks > ind_b - start)\n",
    "            if len(ind_p1) != 0:\n",
    "                ind_p1 = aux_p3d_pks[ind_p1[0]]\n",
    "                p1p = np.append(p1p, ind_p1 + start)\n",
    "                #plt.scatter(ind_p1, ibi_3d_portion[ind_p1]/np.max(ibi_3d_portion), marker = 'o')\n",
    "        # P2:\n",
    "        if (len(aux_p3d_ons) != 0 and len(ind_c) != 0 and len(ind_d) != 0):\n",
    "            if ind_c == ind_d:\n",
    "                ind_p2, = np.where(aux_p3d_ons > ind_d - start)\n",
    "                ind_p2 = aux_p3d_ons[ind_p2[0]]\n",
    "            else:\n",
    "                ind_p2, = np.where(aux_p3d_ons < ind_d - start)\n",
    "                ind_p2 = aux_p3d_ons[ind_p2[-1]]\n",
    "            if len(ind_dic) != 0:\n",
    "                aux_x_pks, _ = sp.find_peaks(ibi_portion)\n",
    "                if ind_p2 > ind_dic - start:\n",
    "                    ind_between = np.intersect1d(np.where(aux_x_pks < ind_p2), np.where(aux_x_pks > ind_dic - start))\n",
    "                else:\n",
    "                    ind_between = np.intersect1d(np.where(aux_x_pks > ind_p2), np.where(aux_x_pks < ind_dic - start))\n",
    "                if len(ind_between) != 0:\n",
    "                    ind_p2 = aux_x_pks[ind_between[0]]\n",
    "            p2p = np.append(p2p, ind_p2 + start)\n",
    "            #plt.scatter(ind_p2, ibi_3d_portion[ind_p2]/np.max(ibi_3d_portion), marker = 'o')\n",
    "    p1p = p1p.astype(int)\n",
    "    p2p = p2p.astype(int)\n",
    "    #plt.figure()\n",
    "    #plt.plot(d3x, color = 'black')\n",
    "    #plt.scatter(p1p, d3x[p1p], marker = 'o', color = 'green') \n",
    "    #plt.scatter(p2p, d3x[p2p], marker = 'o', color = 'orange')\n",
    "        \n",
    "    if vis == True:\n",
    "        fig, (ax1,ax2,ax3,ax4) = plt.subplots(4, 1, sharex = True, sharey = False, figsize=(10,10))\n",
    "        fig.suptitle('Fiducial points') \n",
    "\n",
    "        ax1.plot(x, color = 'lightgrey', zorder = 1)\n",
    "        ax1.scatter(pks, x[pks.astype(int)], color = 'purple', zorder = 2, label = 'pks')\n",
    "        ax1.scatter(ons, x[ons.astype(int)], color = 'blue', zorder = 3, label = 'ons')\n",
    "        ax1.scatter(dia, x[dia.astype(int)], color = 'yellow', zorder = 4, label = 'dia')\n",
    "        ax1.scatter(dic, x[dic.astype(int)], color = 'green', zorder = 5, label = 'dic')\n",
    "        ax1.scatter(tip, x[tip.astype(int)], color = 'orange', zorder = 6, label = 'tip')\n",
    "        ax1.legend()\n",
    "        ax1.set_ylabel('x')\n",
    "\n",
    "        ax2.plot(d1x, color = 'lightgrey', zorder = 1)\n",
    "        ax2.scatter(m1d, d1x[m1d.astype(int)], color = 'orange', zorder = 2, label = 'm1d')\n",
    "        ax2.legend()\n",
    "        ax2.set_ylabel('d1x')\n",
    "\n",
    "        ax3.plot(d2x, color = 'lightgrey', zorder = 1)\n",
    "        ax3.scatter(a2d, d2x[a2d.astype(int)], color = 'purple', zorder = 2, label = 'a')\n",
    "        ax3.scatter(b2d, d2x[b2d.astype(int)], color = 'blue', zorder = 3, label = 'b')\n",
    "        ax3.scatter(c2d, d2x[c2d.astype(int)], color = 'yellow', zorder = 4, label = 'c')\n",
    "        ax3.scatter(d2d, d2x[d2d.astype(int)], color = 'green', zorder = 5, label = 'd')\n",
    "        ax3.scatter(e2d, d2x[e2d.astype(int)], color = 'orange', zorder = 6, label = 'e')\n",
    "        ax3.legend()\n",
    "        ax3.set_ylabel('d2x')\n",
    "\n",
    "        ax4.plot(d3x, color = 'lightgrey', zorder = 1)\n",
    "        ax4.scatter(p1p, d3x[p1p.astype(int)], color = 'purple', zorder = 2, label = 'p1')\n",
    "        ax4.scatter(p2p, d3x[p2p.astype(int)], color = 'blue', zorder = 3, label = 'p2')\n",
    "        ax4.legend()\n",
    "        ax4.set_ylabel('d3x')\n",
    "\n",
    "        plt.subplots_adjust(left = 0.1,\n",
    "                            bottom = 0.1, \n",
    "                            right = 0.9, \n",
    "                            top = 0.9, \n",
    "                            wspace = 0.4, \n",
    "                            hspace = 0.4)\n",
    "        \n",
    "    # Creation of dictionary\n",
    "    fidp = {'pks': pks.astype(int),\n",
    "            'ons': ons.astype(int),\n",
    "            'tip': tip.astype(int),\n",
    "            'dia': dia.astype(int),\n",
    "            'dic': dic.astype(int),\n",
    "            'm1d': m1d.astype(int),\n",
    "            'a2d': a2d.astype(int),\n",
    "            'b2d': b2d.astype(int),\n",
    "            'c2d': c2d.astype(int),\n",
    "            'd2d': d2d.astype(int),\n",
    "            'e2d': e2d.astype(int),\n",
    "            'p1p': p1p.astype(int),\n",
    "            'p2p': p2p.astype(int)\n",
    "            }\n",
    "    return fidp\n",
    "\n",
    "def find_closest_peak(x, loc, dir_search):\n",
    "    \"\"\"\n",
    "    Finds the closest peak to the initial location in x\n",
    "    \n",
    "    Inputs:   x, signal of interest [user defined units]\n",
    "              loc, initial location [number of samples]\n",
    "              dir_search, direction of search ['backward','forward']\n",
    "    Outputs:  pos, location of the first peak detected in specified direction [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "        \n",
    "    \"\"\"\n",
    "    \n",
    "    pos = -1\n",
    "    if dir_search == 'backward':\n",
    "        i = loc - 2\n",
    "        while i > 0:\n",
    "            if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
    "                pos = i\n",
    "                i = 0\n",
    "            else:\n",
    "                i = i - 1\n",
    "        if pos == -1:\n",
    "            pos = loc\n",
    "    elif dir_search == 'forward':\n",
    "        i = loc + 1\n",
    "        while i < len(x) - 1:\n",
    "            if (x[i] > x[i - 1]) and (x[i] > x[i + 1]):\n",
    "                pos = i\n",
    "                i = len(x)\n",
    "            else:\n",
    "                i = i + 1\n",
    "        if pos == -1:\n",
    "            pos = loc\n",
    "    \n",
    "    return pos\n",
    "\n",
    "def heartpy(x, fs, min_ihr, max_ihr, w):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using HeartPy\n",
    "    Citation: van Gent P, Farah H, van Nes N, van Arem B (2019) Heartpy: A novel heart rate algorithm\n",
    "              for the analysis of noisy signals. Transp Res Part F, vol. 66, pp. 368-378. DOI: 10.1016/j.trf.2019.09.015\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "              min_ihr, minimum value of instantaneous heart rate to be accepted [bpm]\n",
    "              max_ihr, maximum value of instantaneous heart rate to be accepted [bpm]\n",
    "              w, length of segments for correction of peaks [s]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Identification of peaks\n",
    "    is_roi = 0\n",
    "    n_rois = 0\n",
    "    pos_pks = np.empty(0).astype(int)\n",
    "    locs = np.empty(0).astype(int)\n",
    "    \n",
    "    len_ma = int(np.round(0.75*fs))\n",
    "    #print(len_ma)\n",
    "    sig = np.append(x[0]*np.ones(len_ma), x)\n",
    "    sig = np.append(sig, x[-1]*np.ones(len_ma))\n",
    "    \n",
    "    i = len_ma\n",
    "    while i < len(sig) - len_ma:\n",
    "        ma = np.mean(sig[i - len_ma:i + len_ma - 1])\n",
    "        #print(len(sig[i - len_ma:i + len_ma - 1]),ma)\n",
    "        \n",
    "        # If it is the beginning of a new ROI:    \n",
    "        if is_roi == 0 and sig[i] >= ma:    \n",
    "            is_roi = 1\n",
    "            n_rois = n_rois + 1\n",
    "            #print('New ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
    "            # If it is a peak:\n",
    "            if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
    "                pos_pks = np.append(pos_pks, int(i))\n",
    "                #print('Possible peaks: ' + str(pos_pks))\n",
    "           \n",
    "        # If it is part of a ROI which is not over: \n",
    "        elif is_roi == 1 and sig[i] > ma:\n",
    "            #print('Actual ROI ---' + str(n_rois) + ' @ ' + str(i))\n",
    "            # If it is a peak:\n",
    "            if sig[i] >= sig[i - 1] and sig[i] >= sig[i + 1]:\n",
    "                pos_pks = np.append(pos_pks, int(i))\n",
    "                #print('Possible peaks: ' + str(pos_pks))\n",
    "                \n",
    "        # If the ROI is over or the end of the signal has been reached:\n",
    "        elif is_roi == 1 and (sig[i] < ma or i == (len(sig) - len_ma)):\n",
    "            #print('End of ROI ---' + str(n_rois) + ' @ ' + str(i) + '. Pos pks: ' + str(pos_pks))\n",
    "            is_roi = 0 # Lowers flag\n",
    "            \n",
    "            # If it is the end of the first ROI:\n",
    "            if n_rois == 1:\n",
    "                # If at least one peak has been found: \n",
    "                if len(pos_pks) != 0:\n",
    "                    # Determines the location of the maximum peak:\n",
    "                    max_pk = np.max(sig[pos_pks])\n",
    "                    ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
    "                    #print('First ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) + \n",
    "                    #      ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
    "                    # The maximum peak is added to the list:\n",
    "                    locs = np.append(locs, pos_pks[ind])\n",
    "                    #print('Locations: ' + str(locs))\n",
    "                # If no peak was found:\n",
    "                else:\n",
    "                    # Counter for ROIs is reset to previous value:\n",
    "                    n_rois = n_rois - 1\n",
    "                   \n",
    "            # If it is the end of the second ROI:\n",
    "            elif n_rois == 2:\n",
    "                # If at least one peak has been found:               \n",
    "                if len(pos_pks) != 0:\n",
    "                    # Measures instantantaneous HR of found peaks with respect to the previous peak: \n",
    "                    ihr = 60/((pos_pks - locs[-1])/fs)\n",
    "                    good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr)      \n",
    "                    #print('Second ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) + \n",
    "                    #      ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))        \n",
    "                    pos_pks = pos_pks[good_ihr].astype(int)\n",
    "                    \n",
    "                    # If at least one peak is between HR limits:    \n",
    "                    if len(pos_pks) != 0:\n",
    "                        # Determines the location of the maximum peak:\n",
    "                        max_pk = np.max(sig[pos_pks])\n",
    "                        ind, = np.where(max_pk == np.max(sig[pos_pks]))\n",
    "                        #print('Second ROI: (1) Max Peak: ' + str(max_pk) + ', amplitudes: ' + str(sig[pos_pks]) + \n",
    "                        #  ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
    "                        # The maximum peak is added to the list:\n",
    "                        locs = np.append(locs, pos_pks[ind])\n",
    "                        #print('Locations: ' + str(locs))\n",
    "                # If no peak was found:\n",
    "                else:\n",
    "                    # Counter for ROIs is reset to previous value:\n",
    "                    n_rois = n_rois - 1\n",
    "            \n",
    "            # If it is the end of the any further ROI:\n",
    "            else:\n",
    "                # If at least one peak has been found: \n",
    "                if len(pos_pks) != 0:\n",
    "                    # Measures instantantaneous HR of found peaks with respect to the previous peak: \n",
    "                    ihr = 60/((pos_pks - locs[-1])/fs)\n",
    "                    good_ihr, = np.where(ihr <= max_ihr and ihr >= min_ihr) \n",
    "                    #print('Third ROI IHR check: (1) IHR: ' + str(ihr) + ', valid peaks: ' + str(good_ihr) + \n",
    "                    #      ', pos_pks before: ' + str(pos_pks) + ', pos_pks after: ' + str(pos_pks[good_ihr]))     \n",
    "                    pos_pks = pos_pks[good_ihr].astype(int)\n",
    "                    \n",
    "                    # If at least one peak is between HR limits:    \n",
    "                    if len(pos_pks) != 0:\n",
    "                        # Calculates SDNN with the possible peaks on the ROI:\n",
    "                        sdnn = np.zeros(len(pos_pks))\n",
    "                        for j in range(len(pos_pks)):\n",
    "                            sdnn[j] = np.std(np.append(locs/fs, pos_pks[j]/fs))\n",
    "                        # Determines the new peak as that one with the lowest SDNN:\n",
    "                        min_pk = np.min(sdnn)\n",
    "                        ind, = np.where(min_pk == np.min(sdnn))\n",
    "                        #print('Third ROI: (1) Min SDNN Peak: ' + str(min_pk) + ', amplitudes: ' + str(sig[pos_pks]) + \n",
    "                        #  ', index: ' + str(int(ind)), ', pk_ind: ' + str(pos_pks[ind]))\n",
    "                        locs = np.append(locs, pos_pks[ind])\n",
    "                        #print('Locations: ' + str(locs))\n",
    "                # If no peak was found:\n",
    "                else:\n",
    "                    # Counter for ROIs is reset to previous value:\n",
    "                    n_rois = n_rois - 1 \n",
    "                    \n",
    "            # Resets possible peaks for next ROI:            \n",
    "            pos_pks = np.empty(0)\n",
    "                           \n",
    "        i = i + 1;\n",
    "    \n",
    "    locs = locs - len_ma\n",
    "    \n",
    "    # Correction of peaks\n",
    "    c_locs = np.empty(0)\n",
    "    n_int = np.floor(len(x)/(w*fs))\n",
    "    for i in range(int(n_int)):\n",
    "        ind1, = np.where(locs >= i*w*fs)\n",
    "        #print('Locs >= ' + str((i)*w*fs) + ': ' + str(locs[ind1]))\n",
    "        ind2, = np.where(locs < (i + 1)*w*fs)\n",
    "        #print('Locs < ' + str((i + 1)*w*fs) + ': ' + str(locs[ind2]))\n",
    "        ind = np.intersect1d(ind1, ind2)\n",
    "        #print('Larger and lower than locs: ' + str(locs[ind]))\n",
    "        int_locs = locs[ind]\n",
    "    \n",
    "        if i == 0:\n",
    "            aux_ibis = np.diff(int_locs)\n",
    "        else:\n",
    "            ind, = np.where(locs >= i*w*fs)\n",
    "            last = locs[ind[0] - 1]\n",
    "            aux_ibis = np.diff(np.append(last, int_locs))\n",
    "        avg_ibis = np.mean(aux_ibis)\n",
    "        th = np.append((avg_ibis - 0.3*avg_ibis), (avg_ibis + 0.3*avg_ibis))\n",
    "        ind1, = np.where(aux_ibis > th[0])\n",
    "        #print('Ind1: ' + str(ind1))\n",
    "        ind2, = np.where(aux_ibis < th[1])\n",
    "        #print('Ind2: ' + str(ind2))\n",
    "        ind = np.intersect1d(ind1, ind2)   \n",
    "        #print('Ind: ' + str(ind))     \n",
    "        \n",
    "        c_locs = np.append(c_locs, int_locs[ind]).astype(int)\n",
    "        print(c_locs)\n",
    "    \n",
    "    #fig = plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.plot(sig)\n",
    "    #plt.scatter(locs,x[locs],marker = 'o',color = 'red')\n",
    "    #if len(c_locs) != 0:\n",
    "        #plt.scatter(c_locs,x[c_locs],marker = 'o',color = 'blue')\n",
    "    \n",
    "    if len(c_locs) != 0:\n",
    "        ibis = c_locs\n",
    "    else:\n",
    "        ibis = locs\n",
    "        \n",
    "    return ibis\n",
    "\n",
    "def d2max(x, fs):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using D2Max\n",
    "    Citation: Elgendi M, Norton I, Brearley M, Abbott D, Schuurmans D (2013) Systolic Peak Detection in Acceleration\n",
    "              Photoplethysmograms Measured from Emergency Responders in Tropical Conditions. PLoS ONE, vol. 8, no. 10, \n",
    "              pp. e76585. DOI: 10.1371/journal.pone.0076585\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Bandpass filter\n",
    "    if len(x) < 4098:\n",
    "        z_fill = np.zeros(4098 - len(x) + 1)\n",
    "        x_z = np.append(x, z_fill)\n",
    "    else:\n",
    "        x_z = x\n",
    "    sos = sp.butter(10, [0.5, 8], btype = 'bp', analog = False, output = 'sos', fs = fs)\n",
    "    x_f = sp.sosfiltfilt(sos, x_z)\n",
    "    \n",
    "    # Signal clipping\n",
    "    ind, = np.where(x_f < 0)\n",
    "    x_c = x_f\n",
    "    x_c[ind] = 0\n",
    "    \n",
    "    # Signal squaring\n",
    "    x_s = x_c**2\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.plot(x_z)\n",
    "    #plt.plot(x_f)\n",
    "    #plt.plot(x_c)\n",
    "    #plt.plot(x_s)\n",
    "    \n",
    "    # Blocks of interest\n",
    "    w1 = (111e-3)*fs\n",
    "    w1 = int(2*np.floor(w1/2) + 1)\n",
    "    b = (1/w1)*np.ones(w1)\n",
    "    ma_pk = sp.filtfilt(b,1,x_s)\n",
    "    \n",
    "    w2 = (667e-3)*fs\n",
    "    w2 = int(2*np.floor(w2/2) + 1)\n",
    "    b = (1/w2)*np.ones(w1)\n",
    "    ma_bpm = sp.filtfilt(b,1,x_s)\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x_s/np.max(x_s))\n",
    "    #plt.plot(ma_pk/np.max(ma_pk))\n",
    "    #plt.plot(ma_bpm/np.max(ma_bpm))\n",
    "    \n",
    "    # Thresholding\n",
    "    alpha = 0.02*np.mean(ma_pk)\n",
    "    th_1 = ma_bpm + alpha\n",
    "    th_2 = w1\n",
    "    boi = (ma_pk > th_1).astype(int)\n",
    "    \n",
    "    blocks_init, = np.where(np.diff(boi) > 0)\n",
    "    blocks_init = blocks_init + 1\n",
    "    blocks_end, = np.where(np.diff(boi) < 0)\n",
    "    blocks_end = blocks_end + 1\n",
    "    if blocks_init[0] > blocks_end[0]:\n",
    "        blocks_init = np.append(1, blocks_init)\n",
    "    if blocks_init[-1] > blocks_end[-1]:\n",
    "        blocks_end = np.append(blocks_end, len(x_s))\n",
    "    #print('Initial locs BOI: ' + str(blocks_init))\n",
    "    #print('Final locs BOI: ' + str(blocks_end))\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x_s[range(len(x))]/np.max(x_s))\n",
    "    #plt.plot(boi[range(len(x))])\n",
    "    \n",
    "    # Search for peaks inside BOIs\n",
    "    len_blks = np.zeros(len(blocks_init))\n",
    "    ibis = np.zeros(len(blocks_init))\n",
    "    for i in range(len(blocks_init)):\n",
    "        ind, = np.where(blocks_end > blocks_init[i])\n",
    "        ind = ind[0]\n",
    "        len_blks[i] = blocks_end[ind] - blocks_init[i]\n",
    "        if len_blks[i] >= th_2:\n",
    "            aux = x[blocks_init[i]:blocks_end[ind]]\n",
    "            if len(aux) != 0:\n",
    "                max_val = np.max(aux)\n",
    "                max_ind, = np.where(max_val == aux)\n",
    "                ibis[i] = max_ind + blocks_init[i] - 1\n",
    "    \n",
    "    ind, = np.where(len_blks < th_2)\n",
    "    if len(ind) != 0:\n",
    "        for i in range(len(ind)):\n",
    "            boi[blocks_init[i]:blocks_end[i]] = 0    \n",
    "    ind, = np.where(ibis == 0)\n",
    "    ibis = (np.delete(ibis, ind)).astype(int)\n",
    "    \n",
    "    #plt.plot(boi[range(len(x))])\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def upslopes(x):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using Upslopes\n",
    "    Citation: Arguello Prada EJ, Serna Maldonado RD (2018) A novel and low-complexity peak detection algorithm for \n",
    "              heart rate estimation from low-amplitude photoplethysmographic (PPG) signals. J Med Eng Technol, vol. 42, \n",
    "              no. 8, pp. 569-577. DOI: 10.1080/03091902.2019.1572237\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Peak detection\n",
    "    th = 6\n",
    "    pks = np.empty(0)\n",
    "    pos_pk = np.empty(0)\n",
    "    pos_pk_b = 0\n",
    "    n_pos_pk = 0\n",
    "    n_up = 0\n",
    "    \n",
    "    for i in range(1, len(x)):\n",
    "        if x[i] > x[i - 1]:\n",
    "            n_up = n_up + 1\n",
    "        else:\n",
    "            if n_up > th:\n",
    "                pos_pk = np.append(pos_pk, i)\n",
    "                pos_pk_b = 1\n",
    "                n_pos_pk = n_pos_pk + 1\n",
    "                n_up_pre = n_up\n",
    "            else:\n",
    "                pos_pk = pos_pk.astype(int)\n",
    "                #print('Possible peaks: ' + str(pos_pk) + ', number of peaks: ' + str(n_pos_pk))\n",
    "                if pos_pk_b == 1:\n",
    "                    if x[i - 1] > x[pos_pk[n_pos_pk - 1]]:\n",
    "                        pos_pk[n_pos_pk - 1] = i - 1\n",
    "                    else:\n",
    "                        pks = np.append(pks, pos_pk[n_pos_pk - 1])\n",
    "                    th = 0.6*n_up_pre\n",
    "                    pos_pk_b = 0\n",
    "            n_up = 0\n",
    "    ibis = pks.astype(int)\n",
    "    #print(ibis)\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.scatter(ibis, x[ibis], marker = 'o',color = 'red')\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def bishop(x):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using Bishop's beat detector\n",
    "    Citation: Bishop SM, Ercole A (2018) Multi-scale peak and trough detection optimised\n",
    "                for periodic and quasi-periodic neuroscience data. doi:10.1007/978-3-319-65798-1_39\n",
    "    Source: This implementation is from ppg_findpeaks in Neurokit2\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Peter H. Charlton\n",
    "    Version:       0.1 -   March, 2023\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Setup\n",
    "    signal = x\n",
    "    N = len(signal)\n",
    "    L = int(np.ceil(N / 2) - 1)\n",
    "\n",
    "    # Step 1: calculate local maxima and local minima scalograms\n",
    "\n",
    "    # - detrend: this removes the best-fit straight line\n",
    "    x = sp.detrend(signal, type=\"linear\")\n",
    "\n",
    "    # - initialise LMS matrices\n",
    "    m_max = np.full((L, N), False)\n",
    "    m_min = np.full((L, N), False)\n",
    "\n",
    "    # - populate LMS matrices\n",
    "    for k in range(1, L):  # scalogram scales\n",
    "        for i in range(k + 2, N - k + 1):\n",
    "            if x[i - 1] > x[i - k - 1] and x[i - 1] > x[i + k - 1]:\n",
    "                m_max[k - 1, i - 1] = True\n",
    "            if x[i - 1] < x[i - k - 1] and x[i - 1] < x[i + k - 1]:\n",
    "                m_min[k - 1, i - 1] = True\n",
    "\n",
    "    # Step 2: find the scale with the most local maxima (or local minima)\n",
    "    # - row-wise summation (i.e. sum each row)\n",
    "    gamma_max = np.sum(m_max, axis=1)\n",
    "    # the \"axis=1\" option makes it row-wise\n",
    "    gamma_min = np.sum(m_min, axis=1)\n",
    "    # - find scale with the most local maxima (or local minima)\n",
    "    lambda_max = np.argmax(gamma_max)\n",
    "    lambda_min = np.argmax(gamma_min)\n",
    "\n",
    "    # Step 3: Use lambda to remove all elements of m for which k>lambda\n",
    "    m_max = m_max[: (lambda_max + 1), :]\n",
    "    m_min = m_min[: (lambda_min + 1), :]\n",
    "\n",
    "    # Step 4: Find peaks (and onsets)\n",
    "    # - column-wise summation\n",
    "    m_max_sum = np.sum(m_max == False, axis=0)\n",
    "    m_min_sum = np.sum(m_min == False, axis=0)\n",
    "    peaks = np.asarray(np.where(m_max_sum == 0)).astype(int)\n",
    "    onsets = np.asarray(np.where(m_min_sum == 0)).astype(int)\n",
    "    \n",
    "    return peaks\n",
    "\n",
    "def qppg(x,fs):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using qppg\n",
    "    Citation: Vest AN et al. An open source benchmarked toolbox for cardiovascular waveform\n",
    "              and interval analysis. Physiological Measurement. 2018;39(10).\n",
    "              https://doi.org/10.1088/1361-6579/aae021\n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Peter H. Charlton\n",
    "    Version:       0.1 -   March, 2023 (doesn't seem to be working yet)\n",
    "    \n",
    "    \"\"\"\n",
    "    \n",
    "    # Setup\n",
    "    from scipy.ndimage import uniform_filter1d\n",
    "    show = 0\n",
    "    signal = x\n",
    "    \n",
    "    if show:\n",
    "        __, ax0 = plt.subplots(nrows=1, ncols=1, sharex=True)\n",
    "        ax0.plot(signal, label=\"signal\")\n",
    "\n",
    "    # Specify constants (where periods are specified in seconds)\n",
    "    r_period = 0.34 # Refractory period (aka eye-closing period) of\n",
    "    l_period = 8 # Learning period\n",
    "    s_period = 0.17 # slope period\n",
    "    maxrr_period = 2.5 # max inter-beat interval \n",
    "    re_scale_period = 5*60 # duration of windows over which to perform re-scaling\n",
    "    \n",
    "    # Re-scale input signal to occupy a range of +/- 2000\n",
    "    # - find min and max for each re-scale period\n",
    "    win_durn_samps = int(np.floor(re_scale_period*fs))\n",
    "    win_starts = range(0, len(signal), win_durn_samps)\n",
    "    mins = np.full((len(win_starts),1),0,dtype=float)\n",
    "    maxs = np.full((len(win_starts),1),0,dtype=float)\n",
    "    for win_no in range(0, len(win_starts)):\n",
    "        last_el = min(len(signal), win_starts[win_no]+win_durn_samps-1)\n",
    "        win_els = range(win_starts[win_no], min([len(signal), win_starts[win_no]+win_durn_samps-1]))\n",
    "        mins[win_no] = min(signal[win_starts[win_no] : last_el])\n",
    "        maxs[win_no] = max(signal[win_starts[win_no] : last_el])\n",
    "    # - calculate average min and max over whole signal\n",
    "    mins = np.median(mins)\n",
    "    maxs = np.median(maxs)\n",
    "    # - re-scale\n",
    "    signal = 4000*(signal-mins)/(maxs-mins) - 2000\n",
    "    \n",
    "    # Calculate sum of slopes function (SSF)\n",
    "    # - calculate no of samples in slope period\n",
    "    s_period_samps = np.floor(s_period*fs)\n",
    "    # - calculate slopes\n",
    "    deriv = np.diff(signal)\n",
    "    # - rectify\n",
    "    deriv[deriv<0] = 0\n",
    "    # - calculate sum of slopes function\n",
    "    ssf = uniform_filter1d(deriv, size=int(s_period_samps)) # this is a moving average\n",
    "\n",
    "    # Learning\n",
    "    # - calculate mean SSF during learning period\n",
    "    l_period_els = range(0, int(np.floor(l_period*fs)))\n",
    "    # - check there is sufficient input signal\n",
    "    if l_period_els[-1]>len(signal):\n",
    "        print('Input signal needs to be at least 8 seconds long')\n",
    "    mean_ssf = np.mean(ssf[l_period_els])\n",
    "    \n",
    "    # - set initial values of thresholds\n",
    "    th_adapt = 3*mean_ssf # adaptive threshold\n",
    "    th_ssf = 2*mean_ssf # threshold for identifying beats in SSF\n",
    "    \n",
    "    # Identify peaks\n",
    "    # - constants\n",
    "    maxrr_period_samps = int(round(maxrr_period*fs))\n",
    "    r_period_samps = int(round(r_period*fs))\n",
    "    half_r_period_samps = int(np.ceil(0.5*r_period_samps))\n",
    "    # - initialise variables\n",
    "    samps_since_peak = 0\n",
    "    # - cycle through each sample\n",
    "    onsets = [0]\n",
    "    el = -1\n",
    "    while el <= len(signal)-r_period_samps:\n",
    "        \n",
    "        el = el + 1\n",
    "        samps_since_peak = samps_since_peak+1\n",
    "\n",
    "        if el > l_period_els[-1] and ssf[el] < th_ssf:\n",
    "            # - if not in the learning period and not above SSF threshold\n",
    "            if samps_since_peak > maxrr_period_samps:\n",
    "                th_adapt = th_adapt-1;\n",
    "                th_ssf = th_adapt/3;\n",
    "        elif ssf[el] > th_ssf: # above SSF threshold\n",
    "            # - search for the max SSF within the eye-closing period after the current index\n",
    "            search_els = range(el, 1+min([len(ssf), el+r_period_samps-1]))\n",
    "            rel_max_el = np.where(ssf[search_els]==max(ssf[search_els]))[0][0]\n",
    "            # - if this maximum is at the current point then ignore (and continue) because it is on the downslope\n",
    "            \n",
    "            if rel_max_el == 1:\n",
    "                continue\n",
    "            max_el = rel_max_el + el - 1\n",
    "            # - search for the location of the minimum SSF value in the time period (of duration half the eye-closing period) preceeding this maximum.\n",
    "            first_el = max(0, el-half_r_period_samps)\n",
    "            search_els = range(first_el,el+1)\n",
    "            rel_min_el = np.where(ssf[search_els]==min(ssf[search_els]))[0][-1]\n",
    "            min_el = search_els[0]-1 + rel_min_el\n",
    "            \n",
    "            # - if the max SSF is more than 10 more than the min, then:\n",
    "            if ssf[max_el] > (10 + ssf[min_el]):\n",
    "                # - locate the pulse onset as the minimum within the refractory period before this point\n",
    "                first_el = max(0, max_el-half_r_period_samps)\n",
    "                search_els = range(first_el, max_el+1)\n",
    "                min_val = min(signal[search_els])\n",
    "                onsets.append(search_els[0]-1+ np.where(signal[search_els]==min_val)[0][-1])\n",
    "            \n",
    "                # Adjust the thresholds:\n",
    "                # - (i) add on to the adaptive threshold one tenth of the difference between the max SSF value and the current adaptive threshold;\n",
    "                th_adapt = th_adapt + 0.1*(ssf[max_el]-th_adapt)\n",
    "                # - (ii) set th_ssf to one third of the adaptive threshold.\n",
    "                th_ssf = (1/3)*th_adapt\n",
    "                \n",
    "                # skip samples in the refractory period, i.e.\n",
    "                el = max_el+r_period_samps-1\n",
    "                samps_since_peak = r_period_samps\n",
    "    \n",
    "    onsets.pop(0) # remove the first element which was used to initiate the variable\n",
    "    \n",
    "    if show:\n",
    "        ax0.scatter(onsets, signal[onsets], c=\"r\")\n",
    "\n",
    "    onsets = np.asarray(onsets).astype(int)\n",
    "    \n",
    "    return onsets\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def delineator(x, fs):\n",
    "    \"\"\"\n",
    "    Detects inter-beat intervals using Delineator\n",
    "    Citation: Li BN, Dong MC, Vai MI (2010) On an automatic delineator for arterial blood pressure waveforms. Biomed\n",
    "    Signal Process Control, vol. 5, no. 1, pp. 76-81. DOI: 10.1016/j.bspc.2009.06.002 \n",
    "\n",
    "    Inputs:   x, pulsatile signal [user defined units]\n",
    "              fs, sampling rate [Hz]\n",
    "    Outputs:  ibis, position of the starting points of inter-beat intervals [number of samples]\n",
    " \n",
    "    Developed by:  Elisa Mejía Mejía\n",
    "                   City, University of London\n",
    "    Version:       1.0 -   June, 2022\n",
    "    \n",
    "    \"\"\"\n",
    "       \n",
    "    # Lowpass filter\n",
    "    od = 3\n",
    "    sos = sp.butter(od, 25, btype = 'low', analog = False, output = 'sos', fs = fs)\n",
    "    x_f = sp.sosfiltfilt(sos, x)\n",
    "    x_m = 1000*x_f\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x)\n",
    "    #plt.plot(x_f)\n",
    "    #plt.plot(x_m)\n",
    "    \n",
    "    # Moving average\n",
    "    n = 5\n",
    "    b = (1/n)*np.ones(n)\n",
    "    x_ma = sp.filtfilt(b,1,x_m)\n",
    "        \n",
    "    # Compute differentials\n",
    "    dif = np.diff(x_ma)\n",
    "    dif = 100*np.append(dif[0], dif)\n",
    "    dif_ma = sp.filtfilt(b,1,dif)\n",
    "    \n",
    "    #plt.figure()\n",
    "    #plt.plot(x_ma)\n",
    "    #plt.plot(dif_ma)\n",
    "               \n",
    "    # Average thresholds in original signal\n",
    "    x_len = len(x)\n",
    "    if x_len > 12*fs:\n",
    "        n = 10\n",
    "    elif x_len > 7*fs:\n",
    "        n = 5\n",
    "    elif x_len > 4*fs:\n",
    "        n = 2\n",
    "    else:\n",
    "        n = 1\n",
    "    #print(n)\n",
    "    \n",
    "    max_min = np.empty(0)\n",
    "    if n > 1:\n",
    "        #plt.figure()\n",
    "        #plt.plot(x_ma)\n",
    "        n_int = np.floor(x_len/(n + 2))\n",
    "        #print('Length of intervals: ' + str(n_int))\n",
    "        for j in range(n):\n",
    "            # Searches for max and min in 1 s intervals\n",
    "            amp_min, ind_min, amp_max, ind_max = seek_local(x_ma, int(j*n_int), int(j*n_int + fs))  \n",
    "            #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
    "            #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
    "            max_min = np.append(max_min, (amp_max - amp_min))\n",
    "        max_min_avg = np.mean(max_min)\n",
    "        #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
    "    else:\n",
    "        amp_min, ind_min , amp_max, ind_max = seek_local(x_ma, int(close_win), int(x_len))\n",
    "        #plt.figure()\n",
    "        #plt.plot(x_ma) \n",
    "        #plt.scatter(ind_min, amp_min, marker = 'o', color = 'red')\n",
    "        #plt.scatter(ind_max, amp_max, marker = 'o', color = 'green')\n",
    "        max_min_avg = amp_max - amp_min\n",
    "        #print('Local max and min: ' + str(max_min) + ', average amplitude: ' + str(max_min_avg))\n",
    "        \n",
    "    max_min_lt = 0.4*max_min_avg\n",
    "    \n",
    "    # Seek pulse beats by min-max method\n",
    "    step_win = 2*fs       # Window length to look for peaks/onsets\n",
    "    close_win = np.floor(0.1*fs)\n",
    "                          # Value of what is considered too close\n",
    "    \n",
    "    pks = np.empty(0)     # Location of peaks\n",
    "    ons = np.empty(0)     # Location of onsets\n",
    "    dic = np.empty(0)     # Location of dicrotic notches\n",
    "        \n",
    "    pk_index = -1          # Number of peaks found\n",
    "    on_index = -1          # Number of onsets found\n",
    "    dn_index = -1          # Number of dicrotic notches found\n",
    "    \n",
    "    i = int(close_win)    # Initializes counter\n",
    "    while i < x_len:      # Iterates through the signal\n",
    "        #print('i: ' + str(i))\n",
    "        amp_min = x_ma[i] # Gets the initial value for the minimum amplitude\n",
    "        amp_max = x_ma[i] # Gets the initial value for the maximum amplitude\n",
    "        \n",
    "        ind = i           # Initializes the temporal location of the index\n",
    "        aux_pks = i       # Initializes the temporal location of the peak \n",
    "        aux_ons = i       # Initializes the temporal location of the onset\n",
    "        \n",
    "        # Iterates while ind is lower than the length of the signal\n",
    "        while ind < x_len - 1:\n",
    "            #print('Ind: ' + str(ind))\n",
    "            # Verifies if no peak has been found in 2 seconds\n",
    "            if (ind - i) > step_win:\n",
    "                #print('Peak not found in 2 s')\n",
    "                ind = i   # Refreshes the temporal location of the index\n",
    "                max_min_avg = 0.6*max_min_avg  # Refreshes the threshold for the amplitude\n",
    "                # Verifies if the threshold is lower than the lower limit\n",
    "                if max_min_avg <= max_min_lt:\n",
    "                    max_min_avg = 2.5*max_min_lt # Refreshes the threshold\n",
    "                break\n",
    "            \n",
    "            # Verifies if the location is a candidate peak \n",
    "            if (dif_ma[ind - 1]*dif_ma[ind + 1]) <= 0:\n",
    "                #print('There is a candidate peak')\n",
    "                # Determines initial and end points of a window to search for local peaks and onsets\n",
    "                if (ind + 5) < x_len:\n",
    "                    i_stop = ind + 5\n",
    "                else:\n",
    "                    i_stop = x_len - 1\n",
    "                if (ind - 5) >= 0:\n",
    "                    i_start = ind - 5\n",
    "                else:\n",
    "                    i_start = 0\n",
    "                \n",
    "                # Checks for artifacts of saturated or signal loss\n",
    "                if (i_stop - ind) >= 5:\n",
    "                    for j in range(ind, i_stop):\n",
    "                        if dif_ma[j] != 0:\n",
    "                            break\n",
    "                    if j == i_stop:\n",
    "                        #print('Artifact')\n",
    "                        break\n",
    "                        \n",
    "                # Candidate onset\n",
    "                #print('Looking for candidate onsets...')\n",
    "                #plt.figure()\n",
    "                #plt.plot(x_ma)\n",
    "                if dif_ma[i_start] < 0:\n",
    "                    if dif_ma[i_stop] > 0:\n",
    "                        aux_min, ind_min, _, _ = seek_local(x_ma, int(i_start), int(i_stop))\n",
    "                        #plt.scatter(ind_min, aux_min, marker = 'o', color = 'red')\n",
    "                        if np.abs(ind_min - ind) <= 2:\n",
    "                            amp_min = aux_min\n",
    "                            aux_ons = ind_min\n",
    "                #print('Candidate onset: ' + str([ind_min, amp_min]))\n",
    "                # Candidate peak\n",
    "                #print('Looking for candidate peaks...')\n",
    "                if dif_ma[i_start] > 0:\n",
    "                    if dif_ma[i_stop] < 0:\n",
    "                        _, _, aux_max, ind_max = seek_local(x_ma, int(i_start), int(i_stop))\n",
    "                        #plt.scatter(ind_max, aux_max, marker = 'o', color = 'green')\n",
    "                        if np.abs(ind_max - ind) <= 2:\n",
    "                            amp_max = aux_max\n",
    "                            aux_pks = ind_max\n",
    "                #print('Candidate peak: ' + str([ind_max, amp_max]))\n",
    "                # Verifies if the amplitude of the pulse is larger than 0.4 times the mean value:\n",
    "                #print('Pulse amplitude: ' + str(amp_max - amp_min) + ', thresholds: ' + \n",
    "                #      str([0.4*max_min_avg, 2*max_min_avg]))\n",
    "                if (amp_max - amp_min) > 0.4*max_min_avg:\n",
    "                    #print('Expected amplitude of pulse')\n",
    "                    # Verifies if the amplitude of the pulse is lower than 2 times the mean value:\n",
    "                    if (amp_max - amp_min) < 2*max_min_avg:\n",
    "                        #print('Expected duration of pulse')\n",
    "                        if aux_pks > aux_ons:\n",
    "                            #print('Refining onsets...')\n",
    "                            # Refine onsets:\n",
    "                            aux_min = x_ma[aux_ons]\n",
    "                            temp_ons = aux_ons\n",
    "                            for j in range(aux_pks, aux_ons + 1, -1):\n",
    "                                if x_ma[j] < aux_min:\n",
    "                                    aux_min = x_ma[j]\n",
    "                                    temp_ons = j\n",
    "                            amp_min = aux_min\n",
    "                            aux_ons = temp_ons\n",
    "                            \n",
    "                            # If there is at least one peak found before:\n",
    "                            #print('Number of previous peaks: ' + str(pk_index + 1))\n",
    "                            if pk_index >= 0:\n",
    "                                #print('There were previous peaks')\n",
    "                                #print('Duration of ons to peak interval: ' + str(aux_ons - pks[pk_index]) + \n",
    "                                #     ', threshold: ' + str([3*close_win, step_win]))\n",
    "                                # If the duration of the pulse is too short:\n",
    "                                if (aux_ons - pks[pk_index]) < 3*close_win:\n",
    "                                    #print('Too short interbeat interval')\n",
    "                                    ind = i\n",
    "                                    max_min_avg = 2.5*max_min_lt\n",
    "                                    break\n",
    "                                # If the time difference between consecutive peaks is longer:    \n",
    "                                if (aux_pks - pks[pk_index]) > step_win:\n",
    "                                    #print('Too long interbeat interval')\n",
    "                                    pk_index = pk_index - 1\n",
    "                                    on_index = on_index - 1\n",
    "                                    #if dn_index > 0:\n",
    "                                    #    dn_index = dn_index - 1\n",
    "                                # If there are still peaks, add the new peak:\n",
    "                                if pk_index >= 0:\n",
    "                                    #print('There are still previous peaks')\n",
    "                                    pk_index = pk_index + 1\n",
    "                                    on_index = on_index + 1\n",
    "                                    pks = np.append(pks, aux_pks)\n",
    "                                    ons = np.append(ons, aux_ons)\n",
    "                                    #print('Peaks: ' + str(pks))\n",
    "                                    #print('Onsets: ' + str(ons))   \n",
    "                                    \n",
    "                                    tf = ons[pk_index] - ons[pk_index - 1]\n",
    "                                    \n",
    "                                    to = np.floor(fs/20)\n",
    "                                    tff = np.floor(0.1*tf)\n",
    "                                    if tff < to:\n",
    "                                        to = tff\n",
    "                                    to = pks[pk_index - 1] + to\n",
    "                                    \n",
    "                                    te = np.floor(fs/20)\n",
    "                                    tff = np.floor(0.5*tf)\n",
    "                                    if tff < te:\n",
    "                                        te = tff\n",
    "                                    te = pks[pk_index - 1] + te\n",
    "                                    \n",
    "                                    #tff = seek_dicrotic(dif_ma[to:te])\n",
    "                                    #if tff == 0:\n",
    "                                    #    tff = te - pks[pk_index - 1]\n",
    "                                    #    tff = np.floor(tff/3)\n",
    "                                    #dn_index = dn_index + 1\n",
    "                                    #dic[dn_index] = to + tff\n",
    "                                    \n",
    "                                    ind = ind + close_win\n",
    "                                    break\n",
    "                            # If it is the first peak:\n",
    "                            if pk_index < 0:\n",
    "                                #print('There were no previous peaks')\n",
    "                                pk_index = pk_index + 1\n",
    "                                on_index = on_index + 1\n",
    "                                pks = np.append(pks, aux_pks)\n",
    "                                ons = np.append(ons, aux_ons)\n",
    "                                #print('Peaks: ' + str(pks))\n",
    "                                #print('Onsets: ' + str(ons))                                \n",
    "                                ind = ind + close_win\n",
    "                                break\n",
    "                                \n",
    "            ind = ind + 1\n",
    "        i = int(ind + 1)\n",
    "    \n",
    "    if len(pks) == 0:\n",
    "        return -1\n",
    "    else:\n",
    "        x_len = len(pks)\n",
    "        temp_p = np.empty(0)\n",
    "        for i in range(x_len):\n",
    "            temp_p = np.append(temp_p, pks[i] - od)\n",
    "        ttk = temp_p[0]\n",
    "        if ttk < 0:\n",
    "            temp_p[0] = 0\n",
    "        pks = temp_p\n",
    "        \n",
    "        x_len = len(ons)\n",
    "        temp_o = np.empty(0)\n",
    "        for i in range(x_len):\n",
    "            temp_o = np.append(temp_o, ons[i] - od)\n",
    "        ttk = temp_o[0]\n",
    "        if ttk < 0:\n",
    "            temp_o[0] = 0\n",
    "        ons = temp_o\n",
    "               \n",
    "    pks = pks + 5\n",
    "    ibis = pks.astype(int)\n",
    "    \n",
    "    return ibis\n",
    "\n",
    "def seek_dicrotic(x):\n",
    "    \n",
    "    izc_min = 0\n",
    "    izc_max = 0\n",
    "    i_temp = 3\n",
    "    temp_len = len(x) - 3\n",
    "    \n",
    "    dic_notch = 0\n",
    "    \n",
    "    n = 5\n",
    "    b = (1/n)*np.ones(n)\n",
    "    x = sp.filtfilt(b,1,x)\n",
    "    \n",
    "    tzc_min = np.empty(0)\n",
    "    while i_temp <= temp_len:\n",
    "        if (x[i_temp]*x[i_temp + 1]) <= 0:\n",
    "            if x[i_temp - 2] < 0:\n",
    "                if x[i_temp + 2] >= 0:\n",
    "                    izc_min = izc_min + 1\n",
    "                    tzc_min = np.append(tzc_min, i_temp)\n",
    "        i_temp = i_temp + 1\n",
    "    \n",
    "    if izc_min == 0:\n",
    "        i_temp = 3\n",
    "        temp_min = x[i_temp]\n",
    "        i_temp_min = i_temp\n",
    "        while i_temp < temp_len:\n",
    "            if x[i_temp + 1] <= x[i_temp - 1]:\n",
    "                dic_notch = i_temp\n",
    "                return dic_notch\n",
    "            i_temp = i_temp + 1\n",
    "    elif izc_min == 1:\n",
    "        dic_notch = tzc_min[izc_min]\n",
    "        return dic_notch\n",
    "    else:\n",
    "        i_temp = tzc_min[0]\n",
    "        temp_max = x[i_temp]\n",
    "        i_temp_max = i_temp\n",
    "        while i_temp < temp_len:\n",
    "            if x[i_temp] > temp_max:\n",
    "                temp_max = x[i_temp]\n",
    "                i_temp_max = i_temp\n",
    "            i_temp = i_temp + 1\n",
    "        for i_temp in range(izc_min, 1, -1):\n",
    "            if tzc_min[i_temp] < i_temp_max:\n",
    "                dic_notch = tzc_min[i_temp]\n",
    "                return dic_notch\n",
    "    \n",
    "    return dic_notch\n",
    "\n",
    "def seek_local(x, start, end):\n",
    "    val_min = x[start]\n",
    "    val_max = x[start]\n",
    "    \n",
    "    ind_min = start\n",
    "    ind_max = start\n",
    "    \n",
    "    for j in range(start, end):\n",
    "        if x[j] > val_max:\n",
    "            val_max = x[j]\n",
    "            ind_max = j\n",
    "        elif x[j] < val_min:\n",
    "            val_min = x[j]\n",
    "            ind_min = j\n",
    "    \n",
    "    return val_min, ind_min, val_max, ind_max\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bded67b5",
   "metadata": {
    "id": "bded67b5"
   },
   "source": [
    "Now return to [this step](#detect-beats-in-the-PPG-signal)"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "name": "beat-detection.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
